/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.lang.parser; import com.intellij.psi.tree.TokenSet; import gw.lang.parser.expressions.*; import gw.lang.parser.statements.IArrayAssignmentStatement; import gw.lang.parser.statements.IAssignmentStatement; import gw.lang.parser.statements.IBeanMethodCallStatement; import gw.lang.parser.statements.IBlockInvocationStatement; import gw.lang.parser.statements.IBreakStatement; import gw.lang.parser.statements.ICaseClause; import gw.lang.parser.statements.ICatchClause; import gw.lang.parser.statements.IClassDeclaration; import gw.lang.parser.statements.IClasspathStatement; import gw.lang.parser.statements.IContinueStatement; import gw.lang.parser.statements.IDoWhileStatement; import gw.lang.parser.statements.IEvalStatement; import gw.lang.parser.statements.IForEachStatement; import gw.lang.parser.statements.IIfStatement; import gw.lang.parser.statements.IMapAssignmentStatement; import gw.lang.parser.statements.IMemberAssignmentStatement; import gw.lang.parser.statements.IMethodCallStatement; import gw.lang.parser.statements.INamespaceStatement; import gw.lang.parser.statements.INewStatement; import gw.lang.parser.statements.INoOpStatement; import gw.lang.parser.statements.INotAStatement; import gw.lang.parser.statements.IReturnStatement; import gw.lang.parser.statements.IStatementList; import gw.lang.parser.statements.ISwitchStatement; import gw.lang.parser.statements.ISyntheticFunctionStatement; import gw.lang.parser.statements.ISyntheticMemberAccessStatement; import gw.lang.parser.statements.IThrowStatement; import gw.lang.parser.statements.ITryCatchFinallyStatement; import gw.lang.parser.statements.ITypeVariableExtendsListClause; import gw.lang.parser.statements.IUsesStatement; import gw.lang.parser.statements.IUsesStatementList; import gw.lang.parser.statements.IUsingStatement; import gw.lang.parser.statements.IWhileStatement; import gw.plugin.ij.lang.GosuElementType; import gw.plugin.ij.lang.GosuTokenTypes; import gw.plugin.ij.lang.psi.GosuStubElementType; import gw.plugin.ij.lang.psi.api.statements.IGosuField; import gw.plugin.ij.lang.psi.api.statements.IGosuFieldProperty; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuAnnotationDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuAnonymousClassDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuClassDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuEnhancementDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuEnumConstant; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuEnumDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuExtendsClause; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuImplementsClause; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuInterfaceDefinition; import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuMethod; import gw.plugin.ij.lang.psi.stubs.GosuFieldPropertyStub; import gw.plugin.ij.lang.psi.stubs.GosuFieldStub; import gw.plugin.ij.lang.psi.stubs.GosuMethodStub; import gw.plugin.ij.lang.psi.stubs.GosuReferenceListStub; import gw.plugin.ij.lang.psi.stubs.GosuTypeDefinitionStub; import gw.plugin.ij.lang.psi.stubs.elements.GosuAnnotationDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuAnonymousClassDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuClassDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuEnhancementDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuEnumConstantElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuEnumDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuExtendsClauseElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuFieldElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuFieldPropertyElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuImplementsClauseElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuInterfaceDefinitionElementType; import gw.plugin.ij.lang.psi.stubs.elements.GosuMethodElementType; public class GosuElementTypes extends GosuTokenTypes { // type definitions public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuClassDefinition> CLASS_DEFINITION = new GosuClassDefinitionElementType(); public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuAnonymousClassDefinition> ANONYMOUS_CLASS_DEFINITION = new GosuAnonymousClassDefinitionElementType(); public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuInterfaceDefinition> INTERFACE_DEFINITION = new GosuInterfaceDefinitionElementType(); public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuEnumDefinition> ENUM_DEFINITION = new GosuEnumDefinitionElementType(); public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuEnhancementDefinition> ENHANCEMENT_DEFINITION = new GosuEnhancementDefinitionElementType(); public static final GosuStubElementType<GosuTypeDefinitionStub, IGosuAnnotationDefinition> ANNOTATION_DEFINITION = new GosuAnnotationDefinitionElementType(); // clauses public static final GosuStubElementType<GosuReferenceListStub, IGosuImplementsClause> IMPLEMENTS_CLAUSE = new GosuImplementsClauseElementType(); public static final GosuStubElementType<GosuReferenceListStub, IGosuExtendsClause> EXTENDS_CLAUSE = new GosuExtendsClauseElementType(); // declarations public static final GosuStubElementType<GosuFieldStub, IGosuEnumConstant> ENUM_CONSTANT = new GosuEnumConstantElementType(); public static final GosuStubElementType<GosuFieldStub, IGosuField> FIELD = new GosuFieldElementType(); public static final GosuStubElementType<GosuFieldPropertyStub, IGosuFieldProperty> FIELD_PROPERTY = new GosuFieldPropertyElementType(); public static final GosuStubElementType<GosuMethodStub, IGosuMethod> METHOD_DEFINITION = new GosuMethodElementType(); //## todo: public GosuStubElementType<GosuAnnotationMethodStub, GosuAnnotationMethod> ANNOTATION_METHOD = new GosuAnnotationMethodElementType(); // various public static final GosuElementType REFERENCE_ELEMENT = new GosuElementType("reference element"); public static final GosuElementType ELEM_TYPE____UnhandledParsedElement = new GosuElementType("UnhandledParsedElement"); // basic public static final GosuElementType ELEM_TYPE_NamespaceStatement = new GosuElementType(INamespaceStatement.class); public static final GosuElementType ELEM_TYPE_ClassDeclaration = new GosuElementType(IClassDeclaration.class); public static final GosuElementType ELEM_TYPE_StatementList = new GosuElementType(IStatementList.class); public static final GosuElementType ELEM_TYPE_NameInDeclaration = new GosuElementType(INameInDeclaration.class); public static final GosuElementType ELEM_TYPE_VarStatement = new GosuElementType(IVarStatement.class); public static final GosuElementType ELEM_TYPE_AssignmentStatement = new GosuElementType(IAssignmentStatement.class); public static final GosuElementType ELEM_TYPE_MemberAssignmentStatement = new GosuElementType(IMemberAssignmentStatement.class); public static final GosuElementType ELEM_TYPE_ArrayAssignmentStatement = new GosuElementType(IArrayAssignmentStatement.class); public static final GosuElementType ELEM_TYPE_MapAssignmentStatement = new GosuElementType(IMapAssignmentStatement.class); public static final GosuElementType ELEM_TYPE_MethodCallStatement = new GosuElementType(IMethodCallStatement.class); public static final GosuElementType ELEM_TYPE_BlockInvocationStatement = new GosuElementType(IBlockInvocationStatement.class); public static final GosuElementType ELEM_TYPE_BeanMethodCallStatement = new GosuElementType(IBeanMethodCallStatement.class); public static final GosuElementType ELEM_TYPE_ReturnStatement = new GosuElementType(IReturnStatement.class); public static final GosuElementType ELEM_TYPE_BreakStatement = new GosuElementType(IBreakStatement.class); public static final GosuElementType ELEM_TYPE_ContinueStatement = new GosuElementType(IContinueStatement.class); public static final GosuElementType ELEM_TYPE_IfStatement = new GosuElementType(IIfStatement.class); public static final GosuElementType ELEM_TYPE_WhileStatement = new GosuElementType(IWhileStatement.class); public static final GosuElementType ELEM_TYPE_DoWhileStatement = new GosuElementType(IDoWhileStatement.class); public static final GosuElementType ELEM_TYPE_ForEachStatement = new GosuElementType(IForEachStatement.class); public static final GosuElementType ELEM_TYPE_SwitchStatement = new GosuElementType(ISwitchStatement.class); public static final GosuElementType ELEM_TYPE_CaseClause = new GosuElementType(ICaseClause.class); public static final GosuElementType ELEM_TYPE_TryCatchFinallyStatement = new GosuElementType(ITryCatchFinallyStatement.class); public static final GosuElementType ELEM_TYPE_CatchClause = new GosuElementType(ICatchClause.class); public static final GosuElementType ELEM_TYPE_ThrowStatement = new GosuElementType(IThrowStatement.class); public static final GosuElementType ELEM_TYPE_UsingStatement = new GosuElementType(IUsingStatement.class); public static final GosuElementType ELEM_TYPE_EvalStatement = new GosuElementType(IEvalStatement.class); public static final GosuElementType ELEM_TYPE_SyntheticFunctionStatement = new GosuElementType(ISyntheticFunctionStatement.class); public static final GosuElementType ELEM_TYPE_SyntheticMemberAccessStatement = new GosuElementType(ISyntheticMemberAccessStatement.class); public static final GosuElementType ELEM_TYPE_NoOpStatement = new GosuElementType(INoOpStatement.class); public static final GosuElementType ELEM_TYPE_ClasspathStatement = new GosuElementType(IClasspathStatement.class); public static final GosuElementType ELEM_TYPE_UsesStatementList = new GosuElementType(IUsesStatementList.class); public static final GosuElementType ELEM_TYPE_UsesStatement = new GosuElementType(IUsesStatement.class); public static final GosuElementType ELEM_TYPE_IdentifierExpression = new GosuElementType(IIdentifierExpression.class); public static final GosuElementType ELEM_TYPE_TypeAsExpression = new GosuElementType(ITypeAsExpression.class); public static final GosuElementType ELEM_TYPE_TypeIsExpression = new GosuElementType(ITypeIsExpression.class); public static final GosuElementType ELEM_TYPE_TypeOfExpression = new GosuElementType(ITypeOfExpression.class); public static final GosuElementType ELEM_TYPE_StaticTypeOfExpression = new GosuElementType(IStaticTypeOfExpression.class); public static final GosuElementType ELEM_TYPE_StringLiteral = new GosuElementType(IStringLiteralExpression.class); public static final GosuElementType ELEM_TYPE_CharLiteral = new GosuElementType(ICharLiteralExpression.class); public static final GosuElementType ELEM_TYPE_NumericLiteral = new GosuElementType(INumericLiteralExpression.class); public static final GosuElementType ELEM_TYPE_TypeLiteral = new GosuElementType(ITypeLiteralExpression.class); public static final GosuElementType ELEM_TYPE_TypeParameterListClause = new GosuElementType(ITypeParameterListClause.class); public static final GosuElementType ELEM_TYPE_TypeVariableDefinitionExpression = new GosuElementType(ITypeVariableDefinitionExpression.class); public static final GosuElementType ELEM_TYPE_TypeVariableListClause = new GosuElementType(ITypeVariableListClause.class); public static final GosuElementType ELEM_TYPE_TypeVariableExtendsListClause = new GosuElementType(ITypeVariableExtendsListClause.class); public static final GosuElementType ELEM_TYPE_BooleanLiteral = new GosuElementType(IBooleanLiteralExpression.class); //##todo public static GosuElementType ELEM_TYPE_DefaultArgLiteral = new GosuElementType(IDefaultArgLiteral.class); public static final GosuElementType ELEM_TYPE_UnaryExpression = new GosuElementType(IUnaryExpression.class); public static final GosuElementType ELEM_TYPE_UnaryNotPlusMinusExpression = new GosuElementType(IUnaryNotPlusMinusExpression.class); public static final GosuElementType ELEM_TYPE_EqualityExpression = new GosuElementType(IEqualityExpression.class); public static final GosuElementType ELEM_TYPE_IdentityExpression = new GosuElementType(IIdentityExpression.class); public static final GosuElementType ELEM_TYPE_RelationalExpression = new GosuElementType(IRelationalExpression.class); public static final GosuElementType ELEM_TYPE_ConditionalOrExpression = new GosuElementType(IConditionalOrExpression.class); public static final GosuElementType ELEM_TYPE_ConditionalAndExpression = new GosuElementType(IConditionalAndExpression.class); public static final GosuElementType ELEM_TYPE_AdditiveExpression = new GosuElementType(IAdditiveExpression.class); public static final GosuElementType ELEM_TYPE_MultiplicativeExpression = new GosuElementType(IMultiplicativeExpression.class); public static final GosuElementType ELEM_TYPE_BitshiftExpression = new GosuElementType(IBitshiftExpression.class); public static final GosuElementType ELEM_TYPE_BitwiseOrExpression = new GosuElementType(IBitwiseOrExpression.class); public static final GosuElementType ELEM_TYPE_BitwiseXorExpression = new GosuElementType(IBitwiseXorExpression.class); public static final GosuElementType ELEM_TYPE_BitwiseAndExpression = new GosuElementType(IBitwiseAndExpression.class); public static final GosuElementType ELEM_TYPE_BeanMethodCallExpression = new GosuElementType(IBeanMethodCallExpression.class); public static final GosuElementType ELEM_TYPE_MethodCallExpression = new GosuElementType(IMethodCallExpression.class); public static final GosuElementType ELEM_TYPE_MemberExpansionAccess = new GosuElementType(IMemberExpansionExpression.class); public static final GosuElementType ELEM_TYPE_FieldAccess = new GosuElementType(IFieldAccessExpression.class); public static final GosuElementType ELEM_TYPE_MemberAccess = new GosuElementType(IMemberAccessExpression.class); public static final GosuElementType ELEM_TYPE_NewExpression = new GosuElementType(INewExpression.class); public static final GosuElementType ELEM_TYPE_NewStatement = new GosuElementType(INewStatement.class); public static final GosuElementType ELEM_TYPE_AnnotationExpression = new GosuElementType(IAnnotationExpression.class); public static final GosuElementType ELEM_TYPE_EvalExpression = new GosuElementType(IEvalExpression.class); public static final GosuElementType ELEM_TYPE_QueryExpression = new GosuElementType(IQueryExpression.class); public static final GosuElementType ELEM_TYPE_ConditionalTernaryExpression = new GosuElementType(IConditionalTernaryExpression.class); public static final GosuElementType ELEM_TYPE_ArrayAccess = new GosuElementType(IArrayAccessExpression.class); public static final GosuElementType ELEM_TYPE_MapAccess = new GosuElementType(IMapAccessExpression.class); public static final GosuElementType ELEM_TYPE_IntervalExpression = new GosuElementType(IIntervalExpression.class); public static final GosuElementType ELEM_TYPE_ParenthesizedExpression = new GosuElementType(IParenthesizedExpression.class); public static final GosuElementType ELEM_TYPE_NullExpression = new GosuElementType(INullExpression.class); public static final GosuElementType ELEM_TYPE_BlockExpression = new GosuElementType(IBlockExpression.class); public static final GosuElementType ELEM_TYPE_ObjectLiteralExpression = new GosuElementType(IObjectLiteralExpression.class); public static final GosuElementType ELEM_TYPE_TemplateStringLiteral = new GosuElementType(ITemplateStringLiteral.class); public static final GosuElementType ELEM_TYPE_ExistsExpression = new GosuElementType(IExistsExpression.class); public static final GosuElementType ELEM_TYPE_BlockInvocation = new GosuElementType(IBlockInvocation.class); public static final GosuElementType ELEM_TYPE_FeatureLiteral = new GosuElementType(IFeatureLiteralExpression.class); public static final GosuElementType ELEM_TYPE_ParameterDeclaration = new GosuElementType(IParameterDeclaration.class); public static final GosuElementType ELEM_TYPE_ParameterListClause = new GosuElementType(IParameterListClause.class); public static final GosuElementType ELEM_TYPE_ModifierListClause = new GosuElementType(IModifierListClause.class); public static final GosuElementType ELEM_TYPE_ArgumentListClause = new GosuElementType(IArgumentListClause.class); public static final GosuElementType ELEM_TYPE_CollectionInitializerExpression = new GosuElementType(ICollectionInitializerExpression.class); public static final GosuElementType ELEM_TYPE_MapInitializerExpression = new GosuElementType(IMapInitializerExpression.class); public static final GosuElementType ELEM_TYPE_ObjectInitializerExpression = new GosuElementType(IObjectInitializerExpression.class); public static final GosuElementType ELEM_TYPE_NotAStatement = new GosuElementType(INotAStatement.class); public static final GosuElementType ELEM_TYPE_LocalVarDeclaration = new GosuElementType(ILocalVarDeclaration.class); public static final GosuElementType ELEM_TYPE_DirectiveExpression = new GosuElementType(IDirectiveExpression.class); public static final GosuElementType ELEM_TYPE_NotAWordExpression = new GosuElementType(INotAWordExpression.class); public static final TokenSet TYPE_DEFINITION_TYPES = TokenSet.create( CLASS_DEFINITION, ENHANCEMENT_DEFINITION, INTERFACE_DEFINITION, ENUM_DEFINITION, ANNOTATION_DEFINITION ); }