/* * Copyright 2011 The authors * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.intellij.lang.ognl.psi; import com.intellij.lang.ognl.OgnlLanguage; import com.intellij.psi.TokenType; import com.intellij.psi.tree.TokenSet; /** * @author Yann Cébron */ public class OgnlTokenTypes implements TokenType { // expression boundaries public static final OgnlTokenType EXPRESSION_START = new OgnlTokenType(OgnlLanguage.EXPRESSION_PREFIX); public static final OgnlTokenType EXPRESSION_END = new OgnlTokenType(OgnlLanguage.EXPRESSION_SUFFIX); // names public static final OgnlTokenType IDENTIFIER = new OgnlTokenType("IDENTIFIER"); // numbers public static final OgnlTokenType INTEGER_LITERAL = new OgnlTokenType("INTEGER_LITERAL"); public static final OgnlTokenType BIG_INTEGER_LITERAL = new OgnlTokenType("BIG_INTEGER_LITERAL"); public static final OgnlTokenType DOUBLE_LITERAL = new OgnlTokenType("DOUBLE_LITERAL"); public static final OgnlTokenType BIG_DECIMAL_LITERAL = new OgnlTokenType("BIG_DECIMAL_LITERAL"); public static final TokenSet NUMBERS = TokenSet.create(INTEGER_LITERAL, BIG_INTEGER_LITERAL, DOUBLE_LITERAL, BIG_DECIMAL_LITERAL); // literals public static final OgnlTokenType CHARACTER_LITERAL = new OgnlTokenType("CHARACTER_LITERAL"); public static final OgnlTokenType STRING_LITERAL = new OgnlTokenType("STRING_LITERAL"); public static final TokenSet TEXT = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL); // keywords public static final OgnlTokenType SHIFT_LEFT_KEYWORD = new OgnlTokenType("SHIFT_LEFT_KEYWORD"); public static final OgnlTokenType SHIFT_RIGHT_KEYWORD = new OgnlTokenType("SHIFT_RIGHT_KEYWORD"); public static final OgnlTokenType SHIFT_RIGHT_LOGICAL_KEYWORD = new OgnlTokenType("SHIFT_RIGHT_LOGICAL_KEYWORD"); public static final OgnlTokenType AND_KEYWORD = new OgnlTokenType("AND_KEYWORD"); public static final OgnlTokenType OR_KEYWORD = new OgnlTokenType("OR_KEYWORD"); public static final OgnlTokenType BAND_KEYWORD = new OgnlTokenType("BAND_KEYWORD"); public static final OgnlTokenType BOR_KEYWORD = new OgnlTokenType("BOR_KEYWORD"); public static final OgnlTokenType XOR_KEYWORD = new OgnlTokenType("XOR_KEYWORD"); public static final OgnlTokenType EQ_KEYWORD = new OgnlTokenType("EQ_KEYWORD"); public static final OgnlTokenType NEQ_KEYWORD = new OgnlTokenType("NEQ_KEYWORD"); public static final OgnlTokenType LT_KEYWORD = new OgnlTokenType("LT_KEYWORD"); public static final OgnlTokenType LT_EQ_KEYWORD = new OgnlTokenType("LT_EQ_KEYWORD"); public static final OgnlTokenType GT_KEYWORD = new OgnlTokenType("GT_KEYWORD"); public static final OgnlTokenType GT_EQ_KEYWORD = new OgnlTokenType("GT_EQ_KEYWORD"); public static final OgnlTokenType NEGATE = new OgnlTokenType("NEGATE"); public static final OgnlTokenType NOT_KEYWORD = new OgnlTokenType("NOT_KEYWORD"); public static final OgnlTokenType NOT_IN_KEYWORD = new OgnlTokenType("NOT_IN_KEYWORD"); public static final OgnlTokenType IN_KEYWORD = new OgnlTokenType("IN_KEYWORD"); public static final OgnlTokenType NEW_KEYWORD = new OgnlTokenType("NEW_KEYWORD"); public static final OgnlTokenType TRUE_KEYWORD = new OgnlTokenType("TRUE_KEYWORD"); public static final OgnlTokenType FALSE_KEYWORD = new OgnlTokenType("FALSE_KEYWORD"); public static final OgnlTokenType NULL_KEYWORD = new OgnlTokenType("NULL_KEYWORD"); public static final OgnlTokenType INSTANCEOF_KEYWORD = new OgnlTokenType("INSTANCEOF_KEYWORD"); public static final TokenSet KEYWORDS = TokenSet.create( NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, NULL_KEYWORD); // bit-shift public static final OgnlTokenType SHIFT_LEFT = new OgnlTokenType("SHIFT_LEFT"); public static final OgnlTokenType SHIFT_RIGHT = new OgnlTokenType("SHIFT_RIGHT"); public static final OgnlTokenType SHIFT_RIGHT_LOGICAL = new OgnlTokenType("SHIFT_RIGHT_LOGICAL"); // simple tokens public static final OgnlTokenType DOT = new OgnlTokenType("DOT"); public static final OgnlTokenType COMMA = new OgnlTokenType("COMMA"); public static final OgnlTokenType EQ = new OgnlTokenType("EQ"); // special expressions public static final OgnlTokenType COLON = new OgnlTokenType("COLON"); public static final OgnlTokenType QUESTION = new OgnlTokenType("QUESTION"); public static final OgnlTokenType HASH = new OgnlTokenType("HASH"); public static final OgnlTokenType AT = new OgnlTokenType("AT"); public static final OgnlTokenType DOLLAR = new OgnlTokenType("DOLLAR"); // math public static final OgnlTokenType MULTIPLY = new OgnlTokenType("MULTIPLY"); public static final OgnlTokenType DIVISION = new OgnlTokenType("DIVISION"); public static final OgnlTokenType PLUS = new OgnlTokenType("PLUS"); public static final OgnlTokenType MINUS = new OgnlTokenType("MINUS"); public static final OgnlTokenType MODULO = new OgnlTokenType("MODULO"); // comparison public static final OgnlTokenType EQUAL = new OgnlTokenType("EQUAL"); public static final OgnlTokenType NOT_EQUAL = new OgnlTokenType("NOT_EQUAL"); public static final OgnlTokenType LESS = new OgnlTokenType("LESS"); public static final OgnlTokenType GREATER = new OgnlTokenType("GREATER"); public static final OgnlTokenType LESS_EQUAL = new OgnlTokenType("LESS_EQUAL"); public static final OgnlTokenType GREATER_EQUAL = new OgnlTokenType("GREATER_EQUAL"); // boolean ops public static final OgnlTokenType OR = new OgnlTokenType("OR"); public static final OgnlTokenType XOR = new OgnlTokenType("XOR"); public static final OgnlTokenType AND = new OgnlTokenType("AND"); // logical ops public static final OgnlTokenType AND_AND = new OgnlTokenType("AND_AND"); public static final OgnlTokenType OR_OR = new OgnlTokenType("OR_OR"); public static final OgnlTokenType NOT = new OgnlTokenType("NOT"); public static final TokenSet OPERATION_SIGNS = TokenSet.create( QUESTION, EQ, MULTIPLY, DIVISION, PLUS, MINUS, MODULO, NEGATE, EQUAL, NOT_EQUAL, LESS, GREATER, LESS_EQUAL, GREATER_EQUAL, OR, XOR, AND, NOT, AND_AND, OR_OR, SHIFT_LEFT, SHIFT_RIGHT, SHIFT_RIGHT_LOGICAL); public static final TokenSet OPERATION_KEYWORDS = TokenSet.create( NOT_KEYWORD, NOT_IN_KEYWORD, IN_KEYWORD, INSTANCEOF_KEYWORD, SHIFT_LEFT_KEYWORD, SHIFT_RIGHT_KEYWORD, SHIFT_RIGHT_LOGICAL_KEYWORD, AND_KEYWORD, BAND_KEYWORD, OR_KEYWORD, BOR_KEYWORD, XOR_KEYWORD, EQ_KEYWORD, NEQ_KEYWORD, LT_KEYWORD, LT_EQ_KEYWORD, GT_KEYWORD, GT_EQ_KEYWORD); public static final TokenSet OPERATIONS = TokenSet.orSet(OPERATION_SIGNS, OPERATION_KEYWORDS); // bracing public static final OgnlTokenType LBRACKET = new OgnlTokenType("["); public static final OgnlTokenType RBRACKET = new OgnlTokenType("]"); public static final OgnlTokenType LBRACE = new OgnlTokenType("{"); public static final OgnlTokenType RBRACE = new OgnlTokenType("}"); public static final OgnlTokenType LPARENTH = new OgnlTokenType("("); public static final OgnlTokenType RPARENTH = new OgnlTokenType(")"); }