/* * Copyright 2000-2013 JetBrains s.r.o. * Copyright 2014-2014 AS3Boyan * Copyright 2014-2014 Elias Ku * * 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.plugins.haxe.lang.lexer; import com.intellij.plugins.haxe.HaxeLanguage; import com.intellij.psi.TokenType; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IFileElementType; import com.intellij.psi.tree.TokenSet; import static com.intellij.plugins.haxe.lang.lexer.HaxeTokenTypes.*; public interface HaxeTokenTypeSets { IFileElementType HAXE_FILE = new IFileElementType("HAXEFILE", HaxeLanguage.INSTANCE); IElementType MSL_COMMENT = new HaxeElementType("MSL_COMMENT"); IElementType MML_COMMENT = new HaxeElementType("MML_COMMENT"); IElementType DOC_COMMENT = new HaxeElementType("DOC_COMMENT"); IElementType PPEXPRESSION = new HaxeElementType("PPEXPRESSION"); IElementType PPBODY = new HaxeElementType("PPBODY"); IElementType WSNLS = new HaxeElementType("WSNLS"); TokenSet WHITESPACES = TokenSet.create( WSNLS, TokenType.WHITE_SPACE, TokenType.NEW_LINE_INDENT ); TokenSet ONLY_COMMENTS = TokenSet.create( MML_COMMENT, MSL_COMMENT, DOC_COMMENT ); TokenSet COMMENTS = TokenSet.create( MML_COMMENT, MSL_COMMENT, DOC_COMMENT, PPIF, PPEND, PPELSE, PPERROR, PPBODY, PPEXPRESSION, CONDITIONAL_STATEMENT_ID ); TokenSet CONDITIONALLY_NOT_COMPILED = TokenSet.create( PPIF, PPEND, PPELSE, PPERROR, PPBODY, PPEXPRESSION, CONDITIONAL_STATEMENT_ID ); TokenSet BAD_TOKENS = TokenSet.create( TokenType.BAD_CHARACTER ); TokenSet STRINGS = TokenSet.create( OPEN_QUOTE, CLOSING_QUOTE, REGULAR_STRING_PART ); TokenSet KEYWORDS = TokenSet.create( KBREAK, KCASE, KCAST, KCLASS, KABSTRACT, KCONTINUE, KDEFAULT, KDO, KDYNAMIC, KELSE, KENUM, KEXTENDS, KFOR, KFUNCTION, KIF, KIMPLEMENTS, KIMPORT, KINLINE, KINTERFACE, KNULL, KOVERRIDE, KPACKAGE, KPRIVATE, KPUBLIC, KRETURN, KSTATIC, KSWITCH, KTHIS, KTHROW, KUNTYPED, KVAR, KWHILE, KTRY, KCATCH, KTYPEDEF, PPELSE, PPELSEIF, PPEND, PPERROR, PPIF, KEXTERN, KFINAL, KHACK, KNATIVE, KMACRO, KMACRO2, KBUILD, KAUTOBUILD, KKEEP, KREQUIRE, KFAKEENUM, KCOREAPI, KBIND, KBITMAP, KNS, KPROTECTED, KGETTER, KSETTER, KDEBUG, KNODEBUG, KMETA, KUSING, KSUPER, MACRO_ID, //KFROM, //KTO, KNEVER, ONEW ); TokenSet FUNCTION_DEFINITION = TokenSet.create( FUNCTION_DECLARATION_WITH_ATTRIBUTES, FUNCTION_PROTOTYPE_DECLARATION_WITH_ATTRIBUTES, LOCAL_FUNCTION_DECLARATION, FUNCTION_LITERAL ); TokenSet BINARY_EXPRESSIONS = TokenSet.create( LOGIC_OR_EXPRESSION, LOGIC_AND_EXPRESSION, COMPARE_EXPRESSION, SHIFT_EXPRESSION, ADDITIVE_EXPRESSION, MULTIPLICATIVE_EXPRESSION ); TokenSet BINARY_OPERATORS = TokenSet.create( BIT_OPERATION, OCOND_OR, OCOND_AND, COMPARE_OPERATION, SHIFT_OPERATOR, OPLUS, OMINUS, OMUL, OQUOTIENT, OREMAINDER ); TokenSet ASSIGN_OPERATORS = TokenSet.create( OASSIGN, OPLUS_ASSIGN, OMINUS_ASSIGN, OBIT_OR_ASSIGN, OBIT_XOR_ASSIGN, OMUL_ASSIGN, OQUOTIENT_ASSIGN, OREMAINDER_ASSIGN, OSHIFT_LEFT_ASSIGN, OBIT_AND_ASSIGN, ASSIGN_OPERATION ); //OSHIFT_RIGHT_ASSIGN TokenSet LOGIC_OPERATORS = TokenSet.create( OCOND_OR, OCOND_AND ); TokenSet EQUALITY_OPERATORS = TokenSet.create( OEQ, ONOT_EQ ); TokenSet RELATIONAL_OPERATORS = TokenSet.create( OLESS, OLESS_OR_EQUAL, OGREATER ); //OGREATER_OR_EQUAL TokenSet ADDITIVE_OPERATORS = TokenSet.create( OPLUS, OMINUS ); TokenSet MULTIPLICATIVE_OPERATORS = TokenSet.create( OMUL, OQUOTIENT, OREMAINDER ); TokenSet UNARY_OPERATORS = TokenSet.create( OPLUS_PLUS, OMINUS_MINUS, ONOT, OMINUS ); TokenSet BITWISE_OPERATORS = TokenSet.create( OBIT_AND, OBIT_OR, OBIT_XOR, BIT_OPERATION ); TokenSet SHIFT_OPERATORS = TokenSet.create( OSHIFT_LEFT, SHIFT_RIGHT_OPERATOR, UNSIGNED_SHIFT_RIGHT_OPERATOR, SHIFT_OPERATOR ); TokenSet OPERATORS = TokenSet.create( OTRIPLE_DOT, OEQ, OASSIGN, ONOT_EQ, ONOT, OPLUS_PLUS, OPLUS_ASSIGN, OPLUS, OMINUS_MINUS, OMINUS_ASSIGN, OMINUS, OCOND_OR, OBIT_OR_ASSIGN, OBIT_OR, OCOND_AND, OBIT_AND_ASSIGN, OBIT_AND, OSHIFT_LEFT_ASSIGN, OSHIFT_LEFT, OLESS_OR_EQUAL, OLESS, OBIT_XOR_ASSIGN, OBIT_XOR, OMUL_ASSIGN, OMUL, OQUOTIENT_ASSIGN, OQUOTIENT, OREMAINDER_ASSIGN, OREMAINDER, //OSHIFT_RIGHT_ASSIGN, //OGREATER_OR_EQUAL, OGREATER ); }