/* * Copyright 2013-2017 consulo.io * * 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 consulo.csharp.lang.psi; import com.intellij.psi.TokenType; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; /** * @author VISTALL * @since 22.11.13. */ public interface CSharpTokenSets extends CSharpSoftTokens, CSharpTokensImpl { // please be care with changing position of elements, because it ill broke stub tree IElementType[] NATIVE_TYPES_AS_ARRAY = new IElementType[]{ STRING_KEYWORD, VOID_KEYWORD, INT_KEYWORD, BOOL_KEYWORD, BYTE_KEYWORD, CHAR_KEYWORD, DECIMAL_KEYWORD, DOUBLE_KEYWORD, FLOAT_KEYWORD, LONG_KEYWORD, OBJECT_KEYWORD, SBYTE_KEYWORD, SHORT_KEYWORD, UINT_KEYWORD, ULONG_KEYWORD, USHORT_KEYWORD, DYNAMIC_KEYWORD, VAR_KEYWORD, EXPLICIT_KEYWORD, IMPLICIT_KEYWORD, __ARGLIST_KEYWORD }; TokenSet NATIVE_TYPES = TokenSet.create(NATIVE_TYPES_AS_ARRAY); // please be care with changing position of elements, because it ill broke stub tree IElementType[] OVERLOADING_OPERATORS_AS_ARRAY = new IElementType[]{ LTEQ, GTEQ, EQEQ, PLUS, MINUS, DIV, MUL, LT, GT, PERC, AND, OR, TILDE, NTEQ, EXCL, XOR, GTGT, LTLT, PLUSPLUS, MINUSMINUS }; TokenSet OVERLOADING_OPERATORS = TokenSet.create(OVERLOADING_OPERATORS_AS_ARRAY); TokenSet ATTRIBUTE_TARGETS = TokenSet.create(ASSEMBLY_KEYWORD, MODULE_KEYWORD, FIELD_KEYWORD, EVENT_KEYWORD, METHOD_KEYWORD, PARAM_KEYWORD, PROPERTY_KEYWORD, RETURN_KEYWORD, TYPE_KEYWORD); TokenSet ASSIGNMENT_OPERATORS = TokenSet.create(EQ, MULEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ, LTLTEQ, GTGTEQ, ANDEQ, OREQ, XOREQ); TokenSet TYPE_DECLARATION_START = TokenSet.create(CLASS_KEYWORD, INTERFACE_KEYWORD, STRUCT_KEYWORD, ENUM_KEYWORD); TokenSet EVENT_ACCESSOR_START = TokenSet.create(ADD_KEYWORD, REMOVE_KEYWORD); TokenSet PROPERTY_ACCESSOR_START = TokenSet.create(SET_KEYWORD, GET_KEYWORD); TokenSet XXX_ACCESSOR_START = TokenSet.orSet(EVENT_ACCESSOR_START, PROPERTY_ACCESSOR_START); TokenSet MODIFIERS = TokenSet.create(STATIC_KEYWORD, PUBLIC_KEYWORD, PARTIAL_KEYWORD, IN_KEYWORD, OUT_KEYWORD, INTERNAL_KEYWORD, ABSTRACT_KEYWORD, PRIVATE_KEYWORD, SEALED_KEYWORD, UNSAFE_KEYWORD, OVERRIDE_KEYWORD, REF_KEYWORD, EXTERN_KEYWORD, VIRTUAL_KEYWORD, PROTECTED_KEYWORD, VOLATILE_KEYWORD, PARAMS_KEYWORD, READONLY_KEYWORD, ASYNC_KEYWORD, THIS_KEYWORD, NEW_KEYWORD); TokenSet KEYWORDS = TokenSet.create(STRING_KEYWORD, STATIC_KEYWORD, CLASS_KEYWORD, USING_KEYWORD, VOID_KEYWORD, NAMESPACE_KEYWORD, NEW_KEYWORD, TYPEOF_KEYWORD, PUBLIC_KEYWORD, INTERFACE_KEYWORD, STRUCT_KEYWORD, ENUM_KEYWORD, INT_KEYWORD, DELEGATE_KEYWORD, IN_KEYWORD, OUT_KEYWORD, WHERE_KEYWORD, EVENT_KEYWORD, GLOBAL_KEYWORD, ADD_KEYWORD, REMOVE_KEYWORD, SET_KEYWORD, GET_KEYWORD, BOOL_KEYWORD, BYTE_KEYWORD, CHAR_KEYWORD, DECIMAL_KEYWORD, DOUBLE_KEYWORD, FLOAT_KEYWORD, LONG_KEYWORD, OBJECT_KEYWORD, SBYTE_KEYWORD, SHORT_KEYWORD, UINT_KEYWORD, ULONG_KEYWORD, USHORT_KEYWORD, INTERNAL_KEYWORD, ABSTRACT_KEYWORD, PRIVATE_KEYWORD, SEALED_KEYWORD, UNSAFE_KEYWORD, OVERRIDE_KEYWORD, REF_KEYWORD, EXTERN_KEYWORD, VIRTUAL_KEYWORD, PROTECTED_KEYWORD, VOLATILE_KEYWORD, PARAMS_KEYWORD, READONLY_KEYWORD, DYNAMIC_KEYWORD, CONST_KEYWORD, BOOL_KEYWORD, NULL_LITERAL, OPERATOR_KEYWORD, FALSE_KEYWORD, TRUE_KEYWORD, RETURN_KEYWORD, LOCK_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, WHILE_KEYWORD, IS_KEYWORD, BASE_KEYWORD, THIS_KEYWORD, FOREACH_KEYWORD, IF_KEYWORD, ELSE_KEYWORD, AS_KEYWORD, DEFAULT_KEYWORD, SIZEOF_KEYWORD, FIXED_KEYWORD, GOTO_KEYWORD, IMPLICIT_KEYWORD, EXPLICIT_KEYWORD, DO_KEYWORD, FOR_KEYWORD, TRY_KEYWORD, CATCH_KEYWORD, FINALLY_KEYWORD, THROW_KEYWORD, UNCHECKED_KEYWORD, CHECKED_KEYWORD, SWITCH_KEYWORD, CASE_KEYWORD, STACKALLOC_KEYWORD, __ARGLIST_KEYWORD, __MAKEREF_KEYWORD, __REFVALUE_KEYWORD, __REFTYPE_KEYWORD); TokenSet COMMENTS = TokenSet.create(LINE_COMMENT, LINE_DOC_COMMENT, BLOCK_COMMENT, NON_ACTIVE_SYMBOL); TokenSet LITERALS = TokenSet.create(INTEGER_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, VERBATIM_STRING_LITERAL, INTERPOLATION_STRING_LITERAL, DOUBLE_LITERAL, DECIMAL_LITERAL, FLOAT_LITERAL, LONG_LITERAL, FALSE_KEYWORD, TRUE_KEYWORD, NULL_LITERAL, ULONG_LITERAL, UINTEGER_LITERAL); TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, VERBATIM_STRING_LITERAL, INTERPOLATION_STRING_LITERAL); TokenSet WHITESPACES = TokenSet.create(WHITE_SPACE); }