/* * Copyright 2013 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.OgnlTypes; import com.intellij.psi.tree.TokenSet; /** * @author Yann Cébron */ public class OgnlTokenGroups implements OgnlTypes { public static final TokenSet NUMBERS = TokenSet.create(INTEGER_LITERAL, BIG_INTEGER_LITERAL, DOUBLE_LITERAL, BIG_DECIMAL_LITERAL); // literals public static final TokenSet TEXT = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL); // keywords public static final TokenSet KEYWORDS = TokenSet.create(NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, NULL_KEYWORD); // bit-shift public static final TokenSet SHIFT_OPS = TokenSet.create(SHIFT_LEFT, SHIFT_RIGHT, SHIFT_RIGHT_LOGICAL); public static final TokenSet ADDITION_OPS = TokenSet.create(PLUS, MINUS); public static final TokenSet MULTIPLICATION_OPS = TokenSet.create(MULTIPLY, DIVISION, MODULO); // comparison public static final TokenSet EQUALITY_OPS = TokenSet.create(EQUAL, NOT_EQUAL); public static final TokenSet RELATIONAL_OPS = TokenSet.create(LESS, GREATER, LESS_EQUAL, GREATER_EQUAL); // boolean ops public static final TokenSet BITWISE_OPS = TokenSet.create(AND, OR, XOR); // logical ops public static final TokenSet LOGICAL_OPS = TokenSet.create(AND_AND, OR_OR); public static final TokenSet UNARY_OPERATION_SIGNS = TokenSet.create(PLUS, MINUS, NEGATE, NOT); public static final TokenSet UNARY_OPS = TokenSet.orSet(UNARY_OPERATION_SIGNS, TokenSet.create(NOT_KEYWORD)); public static final TokenSet OPERATION_SIGNS = TokenSet.orSet( SHIFT_OPS, ADDITION_OPS, MULTIPLICATION_OPS, EQUALITY_OPS, RELATIONAL_OPS, BITWISE_OPS, LOGICAL_OPS, UNARY_OPERATION_SIGNS); 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); }