Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar Java;
- @parser::members {String ruleName; }
- start : compilationUnitSuf EOF;
- compilationUnit
- : packageDeclaration? importDeclaration* typeDeclaration*
- ;
- packageDeclaration
- : annotation* 'package' qualifiedName ';'
- ;
- importDeclaration
- : 'import' 'static'? qualifiedName ('.' '*')? ';'
- ;
- typeDeclaration
- : classOrInterfaceModifier* classDeclaration
- | classOrInterfaceModifier* enumDeclaration
- | classOrInterfaceModifier* interfaceDeclaration
- | classOrInterfaceModifier* annotationTypeDeclaration
- | ';'
- ;
- modifier
- : classOrInterfaceModifier
- | ('native' | 'synchronized' | 'transient' | 'volatile')
- ;
- classOrInterfaceModifier
- : annotation
- | ('public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'strictfp')
- ;
- variableModifier
- : 'final'
- | annotation
- ;
- classDeclaration
- : 'class' Identifier typeParameters? ('extends' type)? ('implements' typeList)? classBody
- ;
- typeParameters
- : '<' typeParameter (',' typeParameter)* '>'
- ;
- typeParameter
- : Identifier ('extends' typeBound)?
- ;
- typeBound
- : type ('&' type)*
- ;
- enumDeclaration
- : ENUM Identifier ('implements' typeList)? '{' enumConstants? ','? enumBodyDeclarations? '}'
- ;
- enumConstants
- : enumConstant (',' enumConstant)*
- ;
- enumConstant
- : annotation* Identifier arguments? classBody?
- ;
- enumBodyDeclarations
- : ';' classBodyDeclaration*
- ;
- interfaceDeclaration
- : 'interface' Identifier typeParameters? ('extends' typeList)? interfaceBody
- ;
- typeList
- : type (',' type)*
- ;
- classBody
- : '{' classBodyDeclaration* '}'
- ;
- interfaceBody
- : '{' interfaceBodyDeclaration* '}'
- ;
- classBodyDeclaration
- : ';'
- | 'static'? block
- | modifier* memberDeclaration
- ;
- memberDeclaration
- : methodDeclaration
- | genericMethodDeclaration
- | fieldDeclaration
- | constructorDeclaration
- | genericConstructorDeclaration
- | interfaceDeclaration
- | annotationTypeDeclaration
- | classDeclaration
- | enumDeclaration
- ;
- methodDeclaration
- : type Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';')
- | 'void' Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';')
- ;
- genericMethodDeclaration
- : typeParameters methodDeclaration
- ;
- constructorDeclaration
- : Identifier formalParameters ('throws' qualifiedNameList)? constructorBody
- ;
- genericConstructorDeclaration
- : typeParameters constructorDeclaration
- ;
- fieldDeclaration
- : type variableDeclarators ';'
- ;
- interfaceBodyDeclaration
- : modifier* interfaceMemberDeclaration
- | ';'
- ;
- interfaceMemberDeclaration
- : constDeclaration
- | interfaceMethodDeclaration
- | genericInterfaceMethodDeclaration
- | interfaceDeclaration
- | annotationTypeDeclaration
- | classDeclaration
- | enumDeclaration
- ;
- constDeclaration
- : type constantDeclarator (',' constantDeclarator)* ';'
- ;
- constantDeclarator
- : Identifier ('[' ']')* '=' variableInitializer
- ;
- interfaceMethodDeclaration
- : type Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';'
- | 'void' Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';'
- ;
- genericInterfaceMethodDeclaration
- : typeParameters interfaceMethodDeclaration
- ;
- variableDeclarators
- : variableDeclarator (',' variableDeclarator)*
- ;
- variableDeclarator
- : variableDeclaratorId ('=' variableInitializer)?
- ;
- variableDeclaratorId
- : Identifier ('[' ']')*
- ;
- variableInitializer
- : arrayInitializer
- | expression
- ;
- arrayInitializer
- : '{' (variableInitializer (',' variableInitializer)* (',')?)? '}'
- ;
- packageOrTypeName
- : qualifiedName
- ;
- enumConstantName
- : Identifier
- ;
- typeName
- : qualifiedName
- ;
- type
- : classOrInterfaceType ('[' ']')*
- | primitiveType ('[' ']')*
- ;
- classOrInterfaceType
- : Identifier typeArguments? ('.' Identifier typeArguments?)*
- ;
- primitiveType
- : 'boolean'
- | 'char'
- | 'byte'
- | 'short'
- | 'int'
- | 'long'
- | 'float'
- | 'double'
- ;
- typeArguments
- : '<' typeArgument (',' typeArgument)* '>'
- ;
- typeArgument
- : type
- | '?' (('extends' | 'super') type)?
- ;
- qualifiedNameList
- : qualifiedName (',' qualifiedName)*
- ;
- formalParameters
- : '(' formalParameterList? ')'
- ;
- formalParameterList
- : formalParameter (',' formalParameter)* (',' lastFormalParameter)?
- | lastFormalParameter
- ;
- formalParameter
- : variableModifier* type variableDeclaratorId
- ;
- lastFormalParameter
- : variableModifier* type '...' variableDeclaratorId
- ;
- methodBody
- : block
- ;
- constructorBody
- : block
- ;
- qualifiedName
- : Identifier ('.' Identifier)*
- ;
- literal
- : IntegerLiteral
- | FloatingPointLiteral
- | CharacterLiteral
- | StringLiteral
- | BooleanLiteral
- | 'null'
- ;
- annotation
- : '@' annotationName ('(' (elementValuePairs | elementValue)? ')')?
- ;
- annotationName
- : qualifiedName
- ;
- elementValuePairs
- : elementValuePair (',' elementValuePair)*
- ;
- elementValuePair
- : Identifier '=' elementValue
- ;
- elementValue
- : expression
- | annotation
- | elementValueArrayInitializer
- ;
- elementValueArrayInitializer
- : '{' (elementValue (',' elementValue)*)? (',')? '}'
- ;
- annotationTypeDeclaration
- : '@' 'interface' Identifier annotationTypeBody
- ;
- annotationTypeBody
- : '{' (annotationTypeElementDeclaration)* '}'
- ;
- annotationTypeElementDeclaration
- : modifier* annotationTypeElementRest
- | ';'
- ;
- annotationTypeElementRest
- : type annotationMethodOrConstantRest ';'
- | classDeclaration ';'?
- | interfaceDeclaration ';'?
- | enumDeclaration ';'?
- | annotationTypeDeclaration ';'?
- ;
- annotationMethodOrConstantRest
- : annotationMethodRest
- | annotationConstantRest
- ;
- annotationMethodRest
- : Identifier '(' ')' defaultValue?
- ;
- annotationConstantRest
- : variableDeclarators
- ;
- defaultValue
- : 'default' elementValue
- ;
- block
- : '{' blockStatement* '}'
- ;
- blockStatement
- : localVariableDeclarationStatement
- | statement
- | typeDeclaration
- ;
- localVariableDeclarationStatement
- : localVariableDeclaration ';'
- ;
- localVariableDeclaration
- : variableModifier* type variableDeclarators
- ;
- statement
- : block
- | ASSERT expression (':' expression)? ';'
- | 'if' parExpression statement ('else' statement)?
- | 'for' '(' forControl ')' statement
- | 'while' parExpression statement
- | 'do' statement 'while' parExpression ';'
- | 'try' block (catchClause+ finallyBlock? | finallyBlock)
- | 'try' resourceSpecification block catchClause* finallyBlock?
- | 'switch' parExpression '{' switchBlockStatementGroup* switchLabel* '}'
- | 'synchronized' parExpression block
- | 'return' expression? ';'
- | 'throw' expression ';'
- | 'break' Identifier? ';'
- | 'continue' Identifier? ';'
- | ';'
- | statementExpression ';'
- | Identifier ':' statement
- ;
- catchClause
- : 'catch' '(' variableModifier* catchType Identifier ')' block
- ;
- catchType
- : qualifiedName ('|' qualifiedName)*
- ;
- finallyBlock
- : 'finally' block
- ;
- resourceSpecification
- : '(' resources ';'? ')'
- ;
- resources
- : resource (';' resource)*
- ;
- resource
- : variableModifier* classOrInterfaceType variableDeclaratorId '=' expression
- ;
- switchBlockStatementGroup
- : switchLabel+ blockStatement+
- ;
- switchLabel
- : 'case' constantExpression ':'
- | 'case' enumConstantName ':'
- | 'default' ':'
- ;
- forControl
- : enhancedForControl
- | forInit? ';' expression? ';' forUpdate?
- ;
- forInit
- : localVariableDeclaration
- | expressionList
- ;
- enhancedForControl
- : variableModifier* type Identifier ':' expression
- ;
- forUpdate
- : expressionList
- ;
- parExpression
- : '(' expression ')'
- ;
- expressionList
- : expression (',' expression)*
- ;
- statementExpression
- : expression
- ;
- constantExpression
- : expression
- ;
- expression
- : primary
- | expression '.' Identifier
- | expression '.' 'this'
- | expression '.' 'new' nonWildcardTypeArguments? innerCreator
- | expression '.' 'super' superSuffix
- | expression '.' explicitGenericInvocation
- | expression '[' expression ']'
- | expression '(' expressionList? ')'
- | 'new' creator
- | '(' type ')' expression
- | expression ('++' | '--')
- | ('+' | '-' | '++' | '--') expression
- | ('~' | '!') expression
- | expression ('*' | '/' | '%') expression
- | expression ('+' | '-') expression
- | expression ('<' '<' | '>' '>' '>' | '>' '>') expression
- | expression ('<=' | '>=' | '>' | '<') expression
- | expression 'instanceof' type
- | expression ('==' | '!=') expression
- | expression '&' expression
- | expression '^' expression
- | expression '|' expression
- | expression '&&' expression
- | expression '||' expression
- | expression '?' expression ':' expression
- | expression ('='<assoc=right> | '+='<assoc=right> | '-='<assoc=right> | '*='<assoc=right> | '/='<assoc=right> | '&='<assoc=right> | '|='<assoc=right> | '^='<assoc=right> | '>>='<assoc=right> | '>>>='<assoc=right> | '<<='<assoc=right> | '%='<assoc=right>) expression
- ;
- primary
- : '(' expression ')'
- | 'this'
- | 'super'
- | literal
- | Identifier
- | type '.' 'class'
- | 'void' '.' 'class'
- | nonWildcardTypeArguments (explicitGenericInvocationSuffix | 'this' arguments)
- ;
- creator
- : nonWildcardTypeArguments createdName classCreatorRest
- | createdName (arrayCreatorRest | classCreatorRest)
- ;
- createdName
- : Identifier typeArgumentsOrDiamond? ('.' Identifier typeArgumentsOrDiamond?)*
- | primitiveType
- ;
- innerCreator
- : Identifier nonWildcardTypeArgumentsOrDiamond? classCreatorRest
- ;
- arrayCreatorRest
- : '[' (']' ('[' ']')* arrayInitializer | expression ']' ('[' expression ']')* ('[' ']')*)
- ;
- classCreatorRest
- : arguments classBody?
- ;
- explicitGenericInvocation
- : nonWildcardTypeArguments explicitGenericInvocationSuffix
- ;
- nonWildcardTypeArguments
- : '<' typeList '>'
- ;
- typeArgumentsOrDiamond
- : '<' '>'
- | typeArguments
- ;
- nonWildcardTypeArgumentsOrDiamond
- : '<' '>'
- | nonWildcardTypeArguments
- ;
- superSuffix
- : arguments
- | '.' Identifier arguments?
- ;
- explicitGenericInvocationSuffix
- : 'super' superSuffix
- | Identifier arguments
- ;
- arguments
- : '(' expressionList? ')'
- ;
- compilationUnitSuf
- : typeDeclaration*
- | typeDeclarationSuf typeDeclaration*
- | typeDeclaration typeDeclaration*
- | importDeclaration* typeDeclaration*
- | importDeclarationSuf importDeclaration* typeDeclaration*
- | importDeclaration importDeclaration* typeDeclaration*
- | packageDeclarationSuf importDeclaration* typeDeclaration*
- | packageDeclaration importDeclaration* typeDeclaration*
- ;
- packageDeclarationSuf
- : ';'
- | qualifiedNameSuf ';'
- | qualifiedName ';'
- | 'package' qualifiedName ';'
- | annotation* 'package' qualifiedName ';'
- | annotationSuf annotation* 'package' qualifiedName ';'
- | annotation annotation* 'package' qualifiedName ';'
- ;
- importDeclarationSuf
- : ';'
- | '*' ';'
- | '.' '*' ';'
- | qualifiedNameSuf ('.' '*')? ';'
- | qualifiedName ('.' '*')? ';'
- | 'static' qualifiedName ('.' '*')? ';'
- | 'import' 'static'? qualifiedName ('.' '*')? ';'
- ;
- typeParametersSuf
- : '>'
- | (',' typeParameter)* '>'
- | typeParameterSuf (',' typeParameter)* '>'
- | typeParameter (',' typeParameter)* '>'
- | ',' typeParameter (',' typeParameter)* '>'
- | '<' typeParameter (',' typeParameter)* '>'
- ;
- typeParameterSuf
- : typeBoundSuf
- | typeBound
- | 'extends' typeBound
- | Identifier ('extends' typeBound)?
- ;
- typeBoundSuf
- : ('&' type)*
- | typeSuf ('&' type)*
- | type ('&' type)*
- | '&' type ('&' type)*
- ;
- typeListSuf
- : (',' type)*
- | typeSuf (',' type)*
- | type (',' type)*
- | ',' type (',' type)*
- ;
- variableDeclaratorIdSuf
- : ('[' ']')*
- | ']' ('[' ']')*
- | '[' ']' ('[' ']')*
- | Identifier ('[' ']')*
- ;
- packageOrTypeNameSuf
- : qualifiedNameSuf
- | qualifiedName
- ;
- enumConstantNameSuf
- : Identifier
- ;
- typeNameSuf
- : qualifiedNameSuf
- | qualifiedName
- ;
- primitiveTypeSuf
- : 'boolean'
- | 'char'
- | 'byte'
- | 'short'
- | 'int'
- | 'long'
- | 'float'
- | 'double'
- ;
- qualifiedNameListSuf
- : (',' qualifiedName)*
- | qualifiedNameSuf (',' qualifiedName)*
- | qualifiedName (',' qualifiedName)*
- | ',' qualifiedName (',' qualifiedName)*
- ;
- qualifiedNameSuf
- : ('.' Identifier)*
- | Identifier ('.' Identifier)*
- | '.' Identifier ('.' Identifier)*
- ;
- literalSuf
- : IntegerLiteral
- | FloatingPointLiteral
- | CharacterLiteral
- | StringLiteral
- | BooleanLiteral
- | 'null'
- ;
- annotationNameSuf
- : qualifiedNameSuf
- | qualifiedName
- ;
- catchTypeSuf
- : ('|' qualifiedName)*
- | qualifiedNameSuf ('|' qualifiedName)*
- | qualifiedName ('|' qualifiedName)*
- | '|' qualifiedName ('|' qualifiedName)*
- ;
- createdNameSuf
- : ('.' Identifier typeArgumentsOrDiamond?)*
- | typeArgumentsOrDiamondSuf ('.' Identifier typeArgumentsOrDiamond?)*
- | typeArgumentsOrDiamond ('.' Identifier typeArgumentsOrDiamond?)*
- | Identifier typeArgumentsOrDiamond? ('.' Identifier typeArgumentsOrDiamond?)*
- | '.' Identifier typeArgumentsOrDiamond? ('.' Identifier typeArgumentsOrDiamond?)*
- | primitiveTypeSuf
- | primitiveType
- ;
- nonWildcardTypeArgumentsSuf
- : '>'
- | typeListSuf '>'
- | typeList '>'
- | '<' typeList '>'
- ;
- typeArgumentsOrDiamondSuf
- : '>'
- | '<' '>'
- | typeArgumentsSuf
- | typeArguments
- ;
- nonWildcardTypeArgumentsOrDiamondSuf
- : '>'
- | '<' '>'
- | nonWildcardTypeArgumentsSuf
- | nonWildcardTypeArguments
- ;
- classOrInterfaceTypeSuf : {ruleName = "classOrInterfaceTypeSuf"; } s1;
- typeSuf : {ruleName = "typeSuf"; } s1;
- typeArgumentsSuf : {ruleName = "typeArgumentsSuf"; } s1;
- typeArgumentSuf : {ruleName = "typeArgumentSuf"; } s1;
- s1 : v1_1 | v1_2 | v1_3 | v1_4;
- v1_1 : {ruleName.equals("classOrInterfaceTypeSuf")}? t1 | t1 v1_5;
- v1_2 : {ruleName.equals("typeSuf") || ruleName.equals("typeArgumentSuf")}? t3 | t3 v1_6;
- v1_3 : {ruleName.equals("typeArgumentsSuf")}? t5 | t5 v1_7;
- v1_4 : {ruleName.equals("typeArgumentSuf")}? t7 | t7 v1_8;
- v1_8 : {ruleName.equals("typeArgumentsSuf")}? t6 | t6 v1_7;
- v1_5 : {ruleName.equals("typeSuf") || ruleName.equals("typeArgumentSuf")}? t4 | t4 v1_6;
- v1_6 : v1_8;
- v1_7 : {ruleName.equals("classOrInterfaceTypeSuf")}? t2 | t2 v1_5;
- genericInterfaceMethodDeclarationSuf : {ruleName = "genericInterfaceMethodDeclarationSuf"; } s2;
- constantExpressionSuf : {ruleName = "constantExpressionSuf"; } s2;
- constructorBodySuf : {ruleName = "constructorBodySuf"; } s2;
- enumConstantSuf : {ruleName = "enumConstantSuf"; } s2;
- fieldDeclarationSuf : {ruleName = "fieldDeclarationSuf"; } s2;
- finallyBlockSuf : {ruleName = "finallyBlockSuf"; } s2;
- annotationTypeElementRestSuf : {ruleName = "annotationTypeElementRestSuf"; } s2;
- classOrInterfaceModifierSuf : {ruleName = "classOrInterfaceModifierSuf"; } s2;
- methodDeclarationSuf : {ruleName = "methodDeclarationSuf"; } s2;
- genericMethodDeclarationSuf : {ruleName = "genericMethodDeclarationSuf"; } s2;
- variableModifierSuf : {ruleName = "variableModifierSuf"; } s2;
- variableDeclaratorsSuf : {ruleName = "variableDeclaratorsSuf"; } s2;
- forUpdateSuf : {ruleName = "forUpdateSuf"; } s2;
- elementValueArrayInitializerSuf : {ruleName = "elementValueArrayInitializerSuf"; } s2;
- lastFormalParameterSuf : {ruleName = "lastFormalParameterSuf"; } s2;
- explicitGenericInvocationSuf : {ruleName = "explicitGenericInvocationSuf"; } s2;
- statementSuf : {ruleName = "statementSuf"; } s2;
- classDeclarationSuf : {ruleName = "classDeclarationSuf"; } s2;
- memberDeclarationSuf : {ruleName = "memberDeclarationSuf"; } s2;
- annotationTypeBodySuf : {ruleName = "annotationTypeBodySuf"; } s2;
- elementValuePairSuf : {ruleName = "elementValuePairSuf"; } s2;
- forInitSuf : {ruleName = "forInitSuf"; } s2;
- arrayCreatorRestSuf : {ruleName = "arrayCreatorRestSuf"; } s2;
- typeDeclarationSuf : {ruleName = "typeDeclarationSuf"; } s2;
- annotationConstantRestSuf : {ruleName = "annotationConstantRestSuf"; } s2;
- arrayInitializerSuf : {ruleName = "arrayInitializerSuf"; } s2;
- catchClauseSuf : {ruleName = "catchClauseSuf"; } s2;
- formalParametersSuf : {ruleName = "formalParametersSuf"; } s2;
- methodBodySuf : {ruleName = "methodBodySuf"; } s2;
- classBodyDeclarationSuf : {ruleName = "classBodyDeclarationSuf"; } s2;
- annotationMethodRestSuf : {ruleName = "annotationMethodRestSuf"; } s2;
- formalParameterListSuf : {ruleName = "formalParameterListSuf"; } s2;
- annotationTypeDeclarationSuf : {ruleName = "annotationTypeDeclarationSuf"; } s2;
- enhancedForControlSuf : {ruleName = "enhancedForControlSuf"; } s2;
- annotationTypeElementDeclarationSuf : {ruleName = "annotationTypeElementDeclarationSuf"; } s2;
- classBodySuf : {ruleName = "classBodySuf"; } s2;
- statementExpressionSuf : {ruleName = "statementExpressionSuf"; } s2;
- parExpressionSuf : {ruleName = "parExpressionSuf"; } s2;
- resourceSuf : {ruleName = "resourceSuf"; } s2;
- switchLabelSuf : {ruleName = "switchLabelSuf"; } s2;
- constDeclarationSuf : {ruleName = "constDeclarationSuf"; } s2;
- interfaceDeclarationSuf : {ruleName = "interfaceDeclarationSuf"; } s2;
- annotationMethodOrConstantRestSuf : {ruleName = "annotationMethodOrConstantRestSuf"; } s2;
- genericConstructorDeclarationSuf : {ruleName = "genericConstructorDeclarationSuf"; } s2;
- formalParameterSuf : {ruleName = "formalParameterSuf"; } s2;
- explicitGenericInvocationSuffixSuf : {ruleName = "explicitGenericInvocationSuffixSuf"; } s2;
- elementValuePairsSuf : {ruleName = "elementValuePairsSuf"; } s2;
- elementValueSuf : {ruleName = "elementValueSuf"; } s2;
- annotationSuf : {ruleName = "annotationSuf"; } s2;
- expressionListSuf : {ruleName = "expressionListSuf"; } s2;
- localVariableDeclarationStatementSuf : {ruleName = "localVariableDeclarationStatementSuf"; } s2;
- expressionSuf : {ruleName = "expressionSuf"; } s2;
- interfaceBodyDeclarationSuf : {ruleName = "interfaceBodyDeclarationSuf"; } s2;
- argumentsSuf : {ruleName = "argumentsSuf"; } s2;
- forControlSuf : {ruleName = "forControlSuf"; } s2;
- enumBodyDeclarationsSuf : {ruleName = "enumBodyDeclarationsSuf"; } s2;
- superSuffixSuf : {ruleName = "superSuffixSuf"; } s2;
- blockStatementSuf : {ruleName = "blockStatementSuf"; } s2;
- classCreatorRestSuf : {ruleName = "classCreatorRestSuf"; } s2;
- resourceSpecificationSuf : {ruleName = "resourceSpecificationSuf"; } s2;
- interfaceMethodDeclarationSuf : {ruleName = "interfaceMethodDeclarationSuf"; } s2;
- variableDeclaratorSuf : {ruleName = "variableDeclaratorSuf"; } s2;
- switchBlockStatementGroupSuf : {ruleName = "switchBlockStatementGroupSuf"; } s2;
- defaultValueSuf : {ruleName = "defaultValueSuf"; } s2;
- modifierSuf : {ruleName = "modifierSuf"; } s2;
- resourcesSuf : {ruleName = "resourcesSuf"; } s2;
- enumDeclarationSuf : {ruleName = "enumDeclarationSuf"; } s2;
- enumConstantsSuf : {ruleName = "enumConstantsSuf"; } s2;
- variableInitializerSuf : {ruleName = "variableInitializerSuf"; } s2;
- innerCreatorSuf : {ruleName = "innerCreatorSuf"; } s2;
- primarySuf : {ruleName = "primarySuf"; } s2;
- localVariableDeclarationSuf : {ruleName = "localVariableDeclarationSuf"; } s2;
- interfaceBodySuf : {ruleName = "interfaceBodySuf"; } s2;
- interfaceMemberDeclarationSuf : {ruleName = "interfaceMemberDeclarationSuf"; } s2;
- creatorSuf : {ruleName = "creatorSuf"; } s2;
- constructorDeclarationSuf : {ruleName = "constructorDeclarationSuf"; } s2;
- constantDeclaratorSuf : {ruleName = "constantDeclaratorSuf"; } s2;
- blockSuf : {ruleName = "blockSuf"; } s2;
- s2 : v2_1 | v2_2 | v2_3 | v2_4 | v2_5 | v2_6 | v2_7 | v2_8 | v2_9 | v2_10 | v2_11 | v2_12 | v2_13 | v2_14 | v2_15 | v2_16 | v2_17 | v2_18 | v2_19 | v2_20 | v2_21 | v2_22 | v2_23 | v2_24 | v2_25 | v2_26 | v2_27 | v2_28 | v2_29 | v2_30 | v2_31 | v2_32 | v2_33 | v2_34 | v2_35 | v2_36 | v2_37 | v2_38 | v2_39 | v2_40 | v2_41 | v2_42 | v2_43 | v2_44 | v2_45 | v2_46 | v2_47 | v2_48 | v2_49 | v2_50 | v2_51 | v2_52 | v2_53 | v2_54 | v2_55 | v2_56 | v2_57 | v2_58 | v2_59 | v2_60 | v2_61 | v2_62 | v2_63 | v2_64 | v2_65 | v2_66 | v2_67 | v2_68 | v2_69 | v2_70 | v2_71 | v2_72 | v2_73 | v2_74 | v2_75 | v2_76 | v2_77 | v2_78;
- v2_1 : {ruleName.equals("genericInterfaceMethodDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf")}? t9 | t9 v2_79;
- v2_2 : {ruleName.equals("constantExpressionSuf")}? t11 | t11 v2_80;
- v2_3 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("constructorBodySuf") || ruleName.equals("constructorDeclarationSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t13 | t13 v2_81;
- v2_4 : {ruleName.equals("enumConstantSuf")}? t15 | t15 v2_82;
- v2_5 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("fieldDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t19 | t19 v2_83;
- v2_6 : {ruleName.equals("blockStatementSuf") || ruleName.equals("finallyBlockSuf") || ruleName.equals("statementSuf")}? t21 | t21 v2_84;
- v2_7 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t23 | t23 v2_85;
- v2_8 : {ruleName.equals("classOrInterfaceModifierSuf") || ruleName.equals("modifierSuf")}? t29 | t29 v2_86;
- v2_9 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("methodDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t31 | t31 v2_87;
- v2_10 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t34 | t34 v2_88;
- v2_11 : {ruleName.equals("variableModifierSuf")}? t36 | t36 v2_89;
- v2_12 : {ruleName.equals("forInitSuf") || ruleName.equals("annotationConstantRestSuf") || ruleName.equals("variableDeclaratorsSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("localVariableDeclarationSuf")}? t38 | t38 v2_90;
- v2_13 : {ruleName.equals("forUpdateSuf") || ruleName.equals("forControlSuf")}? t40 | t40 v2_91;
- v2_14 : {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("elementValueArrayInitializerSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("annotationMethodRestSuf")}? t42 | t42 v2_92;
- v2_15 : {ruleName.equals("lastFormalParameterSuf") || ruleName.equals("formalParameterListSuf")}? t44 | t44 v2_93;
- v2_16 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("explicitGenericInvocationSuf")}? t46 | t46 v2_94;
- v2_17 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t48 | t48 v2_95;
- v2_18 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("classDeclarationSuf")}? t60 | t60 v2_96;
- v2_19 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t62 | t62 v2_97;
- v2_20 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("annotationTypeBodySuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("annotationTypeDeclarationSuf")}? t72 | t72 v2_98;
- v2_21 : {ruleName.equals("elementValuePairSuf")}? t74 | t74 v2_99;
- v2_22 : {ruleName.equals("forInitSuf")}? t76 | t76 v2_100;
- v2_23 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("arrayCreatorRestSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf")}? t79 | t79 v2_101;
- v2_24 : {ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf")}? t82 | t82 v2_102;
- v2_25 : {ruleName.equals("annotationConstantRestSuf") || ruleName.equals("annotationMethodOrConstantRestSuf")}? t88 | t88 v2_103;
- v2_26 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("arrayCreatorRestSuf") || ruleName.equals("expressionSuf") || ruleName.equals("arrayInitializerSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf")}? t90 | t90 v2_104;
- v2_27 : {ruleName.equals("catchClauseSuf")}? t92 | t92 v2_105;
- v2_28 : {ruleName.equals("formalParametersSuf")}? t95 | t95 v2_106;
- v2_29 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("methodDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("methodBodySuf") || ruleName.equals("classBodyDeclarationSuf")}? t13 | t13 v2_107;
- v2_30 : {ruleName.equals("classBodyDeclarationSuf")}? t99 | t99 v2_108;
- v2_31 : {ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("annotationMethodRestSuf")}? t103 | t103 v2_109;
- v2_32 : {ruleName.equals("formalParameterListSuf")}? t105 | t105 v2_110;
- v2_33 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("annotationTypeDeclarationSuf")}? t108 | t108 v2_111;
- v2_34 : {ruleName.equals("enhancedForControlSuf") || ruleName.equals("forControlSuf")}? t110 | t110 v2_112;
- v2_35 : {ruleName.equals("annotationTypeElementDeclarationSuf")}? t113 | t113 v2_113;
- v2_36 : {ruleName.equals("elementValueSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("enumConstantSuf") || ruleName.equals("expressionSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("forControlSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("classCreatorRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("classDeclarationSuf") || ruleName.equals("memberDeclarationSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("innerCreatorSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("classBodySuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf")}? t116 | t116 v2_114;
- v2_37 : {ruleName.equals("statementExpressionSuf")}? t11 | t11 v2_115;
- v2_38 : {ruleName.equals("parExpressionSuf")}? t120 | t120 v2_116;
- v2_39 : {ruleName.equals("resourceSuf")}? t122 | t122 v2_117;
- v2_40 : {ruleName.equals("switchLabelSuf")}? t125 | t125 v2_118;
- v2_41 : {ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("constDeclarationSuf")}? t127 | t127 v2_119;
- v2_42 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("interfaceDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t129 | t129 v2_120;
- v2_43 : {ruleName.equals("annotationMethodOrConstantRestSuf")}? t131 | t131 v2_121;
- v2_44 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t134 | t134 v2_122;
- v2_45 : {ruleName.equals("formalParameterSuf")}? t136 | t136 v2_123;
- v2_46 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("explicitGenericInvocationSuf") || ruleName.equals("explicitGenericInvocationSuffixSuf")}? t138 | t138 v2_124;
- v2_47 : {ruleName.equals("elementValuePairsSuf")}? t141 | t141 v2_125;
- v2_48 : {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("annotationMethodRestSuf")}? t143 | t143 v2_126;
- v2_49 : {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("classOrInterfaceModifierSuf") || ruleName.equals("annotationSuf") || ruleName.equals("variableModifierSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("modifierSuf") || ruleName.equals("annotationMethodRestSuf")}? t147 | t147 v2_127;
- v2_50 : {ruleName.equals("forInitSuf") || ruleName.equals("expressionListSuf") || ruleName.equals("forUpdateSuf") || ruleName.equals("forControlSuf")}? t150 | t150 v2_128;
- v2_51 : {ruleName.equals("blockStatementSuf") || ruleName.equals("localVariableDeclarationStatementSuf")}? t152 | t152 v2_129;
- v2_52 : {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf")}? t154 | t154 v2_130;
- v2_53 : {ruleName.equals("interfaceBodyDeclarationSuf")}? t162 | t162 v2_131;
- v2_54 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("argumentsSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("superSuffixSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("explicitGenericInvocationSuf") || ruleName.equals("explicitGenericInvocationSuffixSuf")}? t165 | t165 v2_132;
- v2_55 : {ruleName.equals("forControlSuf")}? t167 | t167 v2_133;
- v2_56 : {ruleName.equals("enumBodyDeclarationsSuf")}? t172 | t172 v2_134;
- v2_57 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("superSuffixSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("explicitGenericInvocationSuf") || ruleName.equals("explicitGenericInvocationSuffixSuf")}? t174 | t174 v2_135;
- v2_58 : {ruleName.equals("blockStatementSuf")}? t176 | t176 v2_136;
- v2_59 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("innerCreatorSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("classCreatorRestSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf")}? t180 | t180 v2_137;
- v2_60 : {ruleName.equals("resourceSpecificationSuf")}? t183 | t183 v2_138;
- v2_61 : {ruleName.equals("genericInterfaceMethodDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("interfaceMethodDeclarationSuf")}? t185 | t185 v2_139;
- v2_62 : {ruleName.equals("variableDeclaratorSuf")}? t187 | t187 v2_140;
- v2_63 : {ruleName.equals("switchBlockStatementGroupSuf")}? t189 | t189 v2_141;
- v2_64 : {ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("annotationMethodRestSuf")}? t192 | t192 v2_142;
- v2_65 : {ruleName.equals("modifierSuf")}? t194 | t194 v2_143;
- v2_66 : {ruleName.equals("resourcesSuf")}? t196 | t196 v2_144;
- v2_67 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("enumDeclarationSuf")}? t198 | t198 v2_145;
- v2_68 : {ruleName.equals("enumConstantsSuf")}? t201 | t201 v2_146;
- v2_69 : {ruleName.equals("variableInitializerSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf")}? t203 | t203 v2_147;
- v2_70 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("innerCreatorSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf")}? t206 | t206 v2_148;
- v2_71 : {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf")}? t208 | t208 v2_149;
- v2_72 : {ruleName.equals("forInitSuf") || ruleName.equals("localVariableDeclarationSuf")}? t212 | t212 v2_150;
- v2_73 : {ruleName.equals("interfaceBodySuf") || ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("interfaceDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t215 | t215 v2_151;
- v2_74 : {ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf")}? t217 | t217 v2_152;
- v2_75 : {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf")}? t225 | t225 v2_153;
- v2_76 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("constructorDeclarationSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t228 | t228 v2_154;
- v2_77 : {ruleName.equals("constantDeclaratorSuf")}? t231 | t231 v2_155;
- v2_78 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("methodDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("constructorBodySuf") || ruleName.equals("constructorDeclarationSuf") || ruleName.equals("catchClauseSuf") || ruleName.equals("methodBodySuf") || ruleName.equals("finallyBlockSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("statementSuf") || ruleName.equals("blockSuf")}? t233 | t233 v2_156;
- v2_107 : v2_87;
- v2_106 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("methodDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t32 | t32 v2_87 | {ruleName.equals("genericInterfaceMethodDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("interfaceMethodDeclarationSuf")}? t186 | t186 v2_139 | {ruleName.equals("memberDeclarationSuf") || ruleName.equals("constructorDeclarationSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t230 | t230 v2_154;
- v2_109 : v2_121;
- v2_130 : v2_80 | {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t53 | t53 v2_95 | {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("arrayCreatorRestSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf")}? t80 | t80 v2_101 | v2_112 | v2_115 | {ruleName.equals("parExpressionSuf")}? t96 | t96 v2_116 | v2_117 | v2_126 | {ruleName.equals("forInitSuf") || ruleName.equals("expressionListSuf") || ruleName.equals("forUpdateSuf") || ruleName.equals("forControlSuf")}? t151 | t151 v2_128 | {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf")}? t159 | t159 v2_130 | {ruleName.equals("forControlSuf")}? t170 | t170 v2_133 | v2_147 | {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf")}? t96 | t96 v2_149;
- v2_108 : {ruleName.equals("elementValueSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("enumConstantSuf") || ruleName.equals("expressionSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("forControlSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("classCreatorRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("classDeclarationSuf") || ruleName.equals("memberDeclarationSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("innerCreatorSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("classBodySuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf")}? t117 | t117 v2_114 | {ruleName.equals("enumBodyDeclarationsSuf")}? t173 | t173 v2_134;
- v2_103 : v2_121;
- v2_132 : {ruleName.equals("enumConstantSuf")}? t18 | t18 v2_82 | v2_124 | v2_135 | {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("innerCreatorSuf") || ruleName.equals("expressionSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("classCreatorRestSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("defaultValueSuf")}? t18 | t18 v2_137 | v2_149;
- v2_131 : {ruleName.equals("interfaceBodySuf") || ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("interfaceDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t216 | t216 v2_151;
- v2_102 : v2_136;
- v2_134 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("enumDeclarationSuf")}? t199 | t199 v2_145;
- v2_105 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t55 | t55 v2_95;
- v2_133 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t57 | t57 v2_95;
- v2_104 : v2_101 | v2_147;
- v2_79 : v2_152;
- v2_80 : {ruleName.equals("switchLabelSuf")}? t126 | t126 v2_118;
- v2_83 : v2_97;
- v2_84 : v2_95;
- v2_81 : v2_154;
- v2_82 : {ruleName.equals("enumConstantsSuf")}? t202 | t202 v2_146;
- v2_135 : v2_124 | v2_130;
- v2_136 : {ruleName.equals("switchBlockStatementGroupSuf")}? t190 | t190 v2_141 | {ruleName.equals("memberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("methodDeclarationSuf") || ruleName.equals("genericMethodDeclarationSuf") || ruleName.equals("constructorBodySuf") || ruleName.equals("constructorDeclarationSuf") || ruleName.equals("catchClauseSuf") || ruleName.equals("methodBodySuf") || ruleName.equals("finallyBlockSuf") || ruleName.equals("genericConstructorDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("statementSuf") || ruleName.equals("blockSuf")}? t234 | t234 v2_156;
- v2_137 : v2_148 | v2_153;
- v2_100 : {ruleName.equals("forControlSuf")}? t169 | t169 v2_133;
- v2_101 : v2_153;
- v2_138 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t50 | t50 v2_95;
- v2_139 : v2_79 | v2_152;
- v2_141 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t54 | t54 v2_95;
- v2_140 : {ruleName.equals("forInitSuf") || ruleName.equals("annotationConstantRestSuf") || ruleName.equals("variableDeclaratorsSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("localVariableDeclarationSuf")}? t39 | t39 v2_90;
- v2_145 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t24 | t24 v2_85 | v2_97 | v2_102 | v2_152;
- v2_144 : {ruleName.equals("resourceSpecificationSuf")}? t184 | t184 v2_138;
- v2_143 : {ruleName.equals("classBodyDeclarationSuf")}? t101 | t101 v2_108 | {ruleName.equals("annotationTypeElementDeclarationSuf")}? t114 | t114 v2_113 | {ruleName.equals("interfaceBodyDeclarationSuf")}? t164 | t164 v2_131;
- v2_142 : v2_109;
- v2_86 : {ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf")}? t83 | t83 v2_102 | v2_143;
- v2_85 : v2_113;
- v2_88 : v2_97;
- v2_87 : v2_88 | v2_97;
- v2_89 : {ruleName.equals("lastFormalParameterSuf") || ruleName.equals("formalParameterListSuf")}? t45 | t45 v2_93 | {ruleName.equals("catchClauseSuf")}? t93 | t93 v2_105 | {ruleName.equals("enhancedForControlSuf") || ruleName.equals("forControlSuf")}? t111 | t111 v2_112 | {ruleName.equals("resourceSuf")}? t123 | t123 v2_117 | {ruleName.equals("formalParameterSuf")}? t137 | t137 v2_123 | {ruleName.equals("forInitSuf") || ruleName.equals("localVariableDeclarationSuf")}? t213 | t213 v2_150;
- v2_90 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("fieldDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf")}? t20 | t20 v2_83 | v2_103 | v2_150;
- v2_91 : v2_133;
- v2_92 : v2_126;
- v2_93 : v2_110;
- v2_94 : v2_130;
- v2_95 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t58 | t58 v2_95 | v2_136;
- v2_148 : v2_130;
- v2_149 : v2_130;
- v2_146 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("enumDeclarationSuf")}? t200 | t200 v2_145;
- v2_147 : {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("arrayCreatorRestSuf") || ruleName.equals("expressionSuf") || ruleName.equals("arrayInitializerSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("creatorSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf")}? t91 | t91 v2_104 | v2_140 | v2_155;
- v2_125 : {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("classOrInterfaceModifierSuf") || ruleName.equals("annotationSuf") || ruleName.equals("variableModifierSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("modifierSuf") || ruleName.equals("annotationMethodRestSuf")}? t96 | t96 v2_127;
- v2_154 : v2_97 | v2_122;
- v2_153 : v2_130;
- v2_124 : v2_94 | v2_149;
- v2_156 : v2_81 | v2_84 | {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t59 | t59 v2_95 | v2_105 | v2_107 | v2_108;
- v2_127 : {ruleName.equals("enumConstantSuf")}? t16 | t16 v2_82 | v2_86 | v2_89 | v2_126;
- v2_155 : {ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("constDeclarationSuf")}? t128 | t128 v2_119;
- v2_126 : {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("elementValueArrayInitializerSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("annotationMethodRestSuf")}? t43 | t43 v2_92 | v2_99 | {ruleName.equals("elementValueSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("classOrInterfaceModifierSuf") || ruleName.equals("annotationSuf") || ruleName.equals("variableModifierSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("modifierSuf") || ruleName.equals("annotationMethodRestSuf")}? t96 | t96 v2_127 | v2_142;
- v2_129 : v2_136;
- v2_150 : v2_100 | {ruleName.equals("blockStatementSuf") || ruleName.equals("localVariableDeclarationStatementSuf")}? t20 | t20 v2_129;
- v2_128 : v2_91 | v2_100 | {ruleName.equals("elementValueSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("forControlSuf") || ruleName.equals("annotationMethodRestSuf")}? t96 | t96 v2_130 | {ruleName.equals("elementValueSuf") || ruleName.equals("variableInitializerSuf") || ruleName.equals("elementValuePairSuf") || ruleName.equals("constantExpressionSuf") || ruleName.equals("expressionSuf") || ruleName.equals("argumentsSuf") || ruleName.equals("forControlSuf") || ruleName.equals("primarySuf") || ruleName.equals("annotationMethodRestSuf") || ruleName.equals("enhancedForControlSuf") || ruleName.equals("superSuffixSuf") || ruleName.equals("statementExpressionSuf") || ruleName.equals("resourceSuf") || ruleName.equals("constantDeclaratorSuf") || ruleName.equals("variableDeclaratorSuf") || ruleName.equals("annotationMethodOrConstantRestSuf") || ruleName.equals("defaultValueSuf") || ruleName.equals("explicitGenericInvocationSuf") || ruleName.equals("explicitGenericInvocationSuffixSuf")}? t96 | t96 v2_132;
- v2_152 : v2_131;
- v2_151 : v2_120;
- v2_99 : {ruleName.equals("elementValuePairsSuf")}? t142 | t142 v2_125;
- v2_98 : v2_111;
- v2_97 : v2_108;
- v2_96 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t24 | t24 v2_85 | v2_97 | v2_102 | v2_152;
- v2_120 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t24 | t24 v2_85 | v2_97 | v2_102 | v2_152;
- v2_121 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t20 | t20 v2_85;
- v2_122 : v2_97;
- v2_123 : {ruleName.equals("formalParameterListSuf")}? t107 | t107 v2_110;
- v2_116 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t51 | t51 v2_95;
- v2_115 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t20 | t20 v2_95;
- v2_114 : v2_82 | v2_96 | v2_137;
- v2_113 : {ruleName.equals("memberDeclarationSuf") || ruleName.equals("interfaceMemberDeclarationSuf") || ruleName.equals("blockStatementSuf") || ruleName.equals("annotationTypeBodySuf") || ruleName.equals("typeDeclarationSuf") || ruleName.equals("interfaceBodyDeclarationSuf") || ruleName.equals("classBodyDeclarationSuf") || ruleName.equals("annotationTypeDeclarationSuf")}? t73 | t73 v2_98;
- v2_119 : v2_152;
- v2_118 : {ruleName.equals("blockStatementSuf") || ruleName.equals("statementSuf")}? t52 | t52 v2_95 | {ruleName.equals("switchBlockStatementGroupSuf")}? t191 | t191 v2_141;
- v2_117 : {ruleName.equals("resourcesSuf")}? t197 | t197 v2_144;
- v2_111 : {ruleName.equals("annotationTypeElementDeclarationSuf") || ruleName.equals("annotationTypeElementRestSuf")}? t24 | t24 v2_85 | v2_97 | v2_102 | v2_152;
- v2_112 : v2_133;
- v2_110 : {ruleName.equals("formalParametersSuf")}? t96 | t96 v2_106;
- t131: annotationMethodRest | annotationConstantRest;
- t141: (',' elementValuePair)* | elementValuePair (',' elementValuePair)* | ',' elementValuePair (',' elementValuePair)*;
- t40: expressionList;
- t9: interfaceMethodDeclaration | typeParametersSuf interfaceMethodDeclaration | typeParameters interfaceMethodDeclaration;
- t202: (',' enumConstant)*;
- t194: classOrInterfaceModifier | 'native' | 'synchronized' | 'transient' | 'volatile';
- t23: ';' | annotationMethodOrConstantRest ';' | typeSuf annotationMethodOrConstantRest ';' | type annotationMethodOrConstantRest ';' | classDeclaration ';'? | interfaceDeclaration ';'? | enumDeclaration ';'? | annotationTypeDeclaration ';'?;
- t189: blockStatement blockStatement* | switchLabel switchLabel* blockStatement+;
- t6: (',' typeArgument)* '>';
- t20: ';';
- t50: block catchClause* finallyBlock?;
- t53: ';' | (':' expression)? ';';
- t231: variableInitializer | '=' variableInitializer | ('[' ']')* '=' variableInitializer | ']' ('[' ']')* '=' variableInitializer | '[' ']' ('[' ']')* '=' variableInitializer | Identifier ('[' ']')* '=' variableInitializer;
- t142: (',' elementValuePair)*;
- t198: '}' | enumBodyDeclarations '}' | ',' enumBodyDeclarations? '}' | enumConstants ','? enumBodyDeclarations? '}' | '{' enumConstants? ','? enumBodyDeclarations? '}' | typeListSuf '{' enumConstants? ','? enumBodyDeclarations? '}' | typeList '{' enumConstants? ','? enumBodyDeclarations? '}' | 'implements' typeList '{' enumConstants? ','? enumBodyDeclarations? '}' | Identifier ('implements' typeList)? '{' enumConstants? ','? enumBodyDeclarations? '}' | ENUM Identifier ('implements' typeList)? '{' enumConstants? ','? enumBodyDeclarations? '}';
- t72: '}' | (annotationTypeElementDeclaration)* '}' | annotationTypeElementDeclaration (annotationTypeElementDeclaration)* '}' | '{' (annotationTypeElementDeclaration)* '}';
- t111: variableModifier* type Identifier ':' expression;
- t74: elementValue | '=' elementValue | Identifier '=' elementValue;
- t186: ('[' ']')* ('throws' qualifiedNameList)? ';';
- t24: ';'?;
- t172: classBodyDeclaration* | classBodyDeclaration classBodyDeclaration* | ';' classBodyDeclaration*;
- t128: (',' constantDeclarator)* ';';
- t88: variableDeclarators;
- t79: arrayInitializer | ('[' ']')* arrayInitializer | ']' ('[' ']')* arrayInitializer | '[' ']' ('[' ']')* arrayInitializer | ('[' ']')* | ']' ('[' ']')* | '[' ']' ('[' ']')* | ('[' expression ']')* ('[' ']')* | ']' ('[' expression ']')* ('[' ']')* | expression ']' ('[' expression ']')* ('[' ']')* | '[' expression ']' ('[' expression ']')* ('[' ']')* | '[' (']' ('[' ']')* arrayInitializer | expression ']' ('[' expression ']')* ('[' ']')*);
- t54: switchBlockStatementGroup* switchLabel* '}';
- t152: ';' | localVariableDeclaration ';';
- t134: constructorDeclaration | typeParametersSuf constructorDeclaration | typeParameters constructorDeclaration;
- t197: (';' resource)*;
- t173: classBodyDeclaration*;
- t215: '}' | interfaceBodyDeclaration* '}' | interfaceBodyDeclaration interfaceBodyDeclaration* '}' | '{' interfaceBodyDeclaration* '}';
- t126: ':';
- t55: catchClause* finallyBlock?;
- t180: classBody | arguments classBody?;
- t201: (',' enumConstant)* | enumConstant (',' enumConstant)* | ',' enumConstant (',' enumConstant)*;
- t73: (annotationTypeElementDeclaration)* '}';
- t1: ('.' Identifier typeArguments?)* | typeArguments ('.' Identifier typeArguments?)* | Identifier typeArguments? ('.' Identifier typeArguments?)* | '.' Identifier typeArguments? ('.' Identifier typeArguments?)*;
- t21: block | 'finally' block;
- t192: elementValue | 'default' elementValue;
- t46: explicitGenericInvocationSuffix | nonWildcardTypeArgumentsSuf explicitGenericInvocationSuffix | nonWildcardTypeArguments explicitGenericInvocationSuffix;
- t170: ';' forUpdate?;
- t116: '}' | classBodyDeclaration* '}' | classBodyDeclaration classBodyDeclaration* '}' | '{' classBodyDeclaration* '}';
- t36: 'final' | annotation;
- t162: interfaceMemberDeclaration | modifier* interfaceMemberDeclaration | modifier modifier* interfaceMemberDeclaration | ';';
- t13: block;
- t62: methodDeclaration | genericMethodDeclaration | fieldDeclaration | constructorDeclaration | genericConstructorDeclaration | interfaceDeclaration | annotationTypeDeclaration | classDeclaration | enumDeclaration;
- t110: expression | ':' expression | Identifier ':' expression | typeSuf Identifier ':' expression | type Identifier ':' expression | variableModifier* type Identifier ':' expression | variableModifier variableModifier* type Identifier ':' expression;
- t42: '}' | ',' '}' | (',' elementValue)* (',')? '}' | elementValue (',' elementValue)* (',')? '}' | ',' elementValue (',' elementValue)* (',')? '}' | '{' (elementValue (',' elementValue)*)? (',')? '}';
- t4: ('[' ']')*;
- t3: ('[' ']')* | ']' ('[' ']')* | '[' ']' ('[' ']')* | classOrInterfaceType ('[' ']')* | primitiveTypeSuf ('[' ']')* | primitiveType ('[' ']')*;
- t117: classBodyDeclaration* '}';
- t167: enhancedForControl | forUpdate | ';' forUpdate? | expression ';' forUpdate? | ';' expression? ';' forUpdate? | forInit ';' expression? ';' forUpdate?;
- t52: switchLabel* '}';
- t225: classCreatorRest | createdNameSuf classCreatorRest | createdName classCreatorRest | nonWildcardTypeArgumentsSuf createdName classCreatorRest | nonWildcardTypeArguments createdName classCreatorRest | arrayCreatorRest | createdNameSuf (arrayCreatorRest | classCreatorRest) | createdName (arrayCreatorRest | classCreatorRest);
- t114: modifier* annotationTypeElementRest;
- t82: classDeclaration | classOrInterfaceModifier* classDeclaration | classOrInterfaceModifier classOrInterfaceModifier* classDeclaration | enumDeclaration | classOrInterfaceModifier* enumDeclaration | classOrInterfaceModifier classOrInterfaceModifier* enumDeclaration | interfaceDeclaration | classOrInterfaceModifier* interfaceDeclaration | classOrInterfaceModifier classOrInterfaceModifier* interfaceDeclaration | annotationTypeDeclaration | classOrInterfaceModifier* annotationTypeDeclaration | classOrInterfaceModifier classOrInterfaceModifier* annotationTypeDeclaration | ';';
- t196: (';' resource)* | resource (';' resource)* | ';' resource (';' resource)*;
- t59: (catchClause+ finallyBlock? | finallyBlock) | catchClause* finallyBlock?;
- t91: (',' variableInitializer)* (',')? '}';
- t95: ')' | formalParameterList ')' | '(' formalParameterList? ')';
- t18: classBody?;
- t234: blockStatement* '}';
- t105: lastFormalParameter | ',' lastFormalParameter | (',' formalParameter)* (',' lastFormalParameter)? | formalParameter (',' formalParameter)* (',' lastFormalParameter)? | ',' formalParameter (',' formalParameter)* (',' lastFormalParameter)?;
- t90: '}' | ',' '}' | (',' variableInitializer)* (',')? '}' | variableInitializer (',' variableInitializer)* (',')? '}' | ',' variableInitializer (',' variableInitializer)* (',')? '}' | '{' (variableInitializer (',' variableInitializer)* (',')?)? '}';
- t83: classOrInterfaceModifier* classDeclaration | classOrInterfaceModifier* enumDeclaration | classOrInterfaceModifier* interfaceDeclaration | classOrInterfaceModifier* annotationTypeDeclaration;
- t93: variableModifier* catchType Identifier ')' block;
- t147: ')' | elementValuePairs ')' | elementValue ')' | '(' (elementValuePairs | elementValue)? ')' | annotationNameSuf ('(' (elementValuePairs | elementValue)? ')')? | annotationName ('(' (elementValuePairs | elementValue)? ')')? | '@' annotationName ('(' (elementValuePairs | elementValue)? ')')?;
- t11: expression;
- t143: expression | annotation | elementValueArrayInitializer;
- t29: annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'strictfp';
- t159: '.' Identifier | '.' 'this' | '.' 'new' nonWildcardTypeArguments? innerCreator | '.' 'super' superSuffix | '.' explicitGenericInvocation | ']' | '[' expression ']' | '(' expressionList? ')' | ('++' | '--') | ('*' | '/' | '%') expression | ('+' | '-') expression | ('<' '<' | '>' '>' '>' | '>' '>') expression | ('<=' | '>=' | '>' | '<') expression | 'instanceof' type | ('==' | '!=') expression | '&' expression | '^' expression | '|' expression | '&&' expression | '||' expression | ':' expression | '?' expression ':' expression | ('='<assoc=right> | '+='<assoc=right> | '-='<assoc=right> | '*='<assoc=right> | '/='<assoc=right> | '&='<assoc=right> | '|='<assoc=right> | '^='<assoc=right> | '>>='<assoc=right> | '>>>='<assoc=right> | '<<='<assoc=right> | '%='<assoc=right>) expression;
- t58: 'else' statement | 'while' parExpression ';';
- t122: expression | '=' expression | variableDeclaratorIdSuf '=' expression | variableDeclaratorId '=' expression | classOrInterfaceTypeSuf variableDeclaratorId '=' expression | classOrInterfaceType variableDeclaratorId '=' expression | variableModifier* classOrInterfaceType variableDeclaratorId '=' expression | variableModifier variableModifier* classOrInterfaceType variableDeclaratorId '=' expression;
- t15: classBody | arguments classBody? | Identifier arguments? classBody? | annotation* Identifier arguments? classBody? | annotation annotation* Identifier arguments? classBody?;
- t154: primary | Identifier | '.' Identifier | expression '.' Identifier | 'this' | '.' 'this' | expression '.' 'this' | innerCreator | nonWildcardTypeArgumentsSuf innerCreator | nonWildcardTypeArguments innerCreator | 'new' nonWildcardTypeArguments? innerCreator | '.' 'new' nonWildcardTypeArguments? innerCreator | expression '.' 'new' nonWildcardTypeArguments? innerCreator | superSuffix | 'super' superSuffix | '.' 'super' superSuffix | expression '.' 'super' superSuffix | explicitGenericInvocation | '.' explicitGenericInvocation | expression '.' explicitGenericInvocation | ']' | expression ']' | '[' expression ']' | expression '[' expression ']' | ')' | expressionList ')' | '(' expressionList? ')' | expression '(' expressionList? ')' | creator | 'new' creator | expression | ')' expression | typeSuf ')' expression | type ')' expression | '(' type ')' expression | '++' | '--' | expression ('++' | '--') | '+' expression | '-' expression | '++' expression | '--' expression | '~' expression | '!' expression | '*' expression | '/' expression | '%' expression | expression ('*' | '/' | '%') expression | expression ('+' | '-') expression | '<' expression | '<' '<' expression | '>' expression | '>' '>' expression | '>' '>' '>' expression | expression ('<' '<' | '>' '>' '>' | '>' '>') expression | '<=' expression | '>=' expression | expression ('<=' | '>=' | '>' | '<') expression | typeSuf | type | 'instanceof' type | expression 'instanceof' type | '==' expression | '!=' expression | expression ('==' | '!=') expression | '&' expression | expression '&' expression | '^' expression | expression '^' expression | '|' expression | expression '|' expression | '&&' expression | expression '&&' expression | '||' expression | expression '||' expression | ':' expression | expression ':' expression | '?' expression ':' expression | expression '?' expression ':' expression | '='<assoc=right> expression | '+='<assoc=right> expression | '-='<assoc=right> expression | '*='<assoc=right> expression | '/='<assoc=right> expression | '&='<assoc=right> expression | '|='<assoc=right> expression | '^='<assoc=right> expression | '>>='<assoc=right> expression | '>>>='<assoc=right> expression | '<<='<assoc=right> expression | '%='<assoc=right> expression | expression ('='<assoc=right> | '+='<assoc=right> | '-='<assoc=right> | '*='<assoc=right> | '/='<assoc=right> | '&='<assoc=right> | '|='<assoc=right> | '^='<assoc=right> | '>>='<assoc=right> | '>>>='<assoc=right> | '<<='<assoc=right> | '%='<assoc=right>) expression;
- t208: ')' | expression ')' | '(' expression ')' | 'this' | 'super' | literalSuf | literal | Identifier | 'class' | '.' 'class' | typeSuf '.' 'class' | type '.' 'class' | 'void' '.' 'class' | explicitGenericInvocationSuffix | arguments | 'this' arguments | nonWildcardTypeArgumentsSuf (explicitGenericInvocationSuffix | 'this' arguments) | nonWildcardTypeArguments (explicitGenericInvocationSuffix | 'this' arguments);
- t2: ('.' Identifier typeArguments?)*;
- t190: blockStatement*;
- t5: '>' | (',' typeArgument)* '>' | typeArgument (',' typeArgument)* '>' | ',' typeArgument (',' typeArgument)* '>' | '<' typeArgument (',' typeArgument)* '>';
- t150: (',' expression)* | expression (',' expression)* | ',' expression (',' expression)*;
- t113: annotationTypeElementRest | modifier* annotationTypeElementRest | modifier modifier* annotationTypeElementRest | ';';
- t138: superSuffix | 'super' superSuffix | arguments | Identifier arguments;
- t187: variableInitializer | '=' variableInitializer | variableDeclaratorIdSuf ('=' variableInitializer)? | variableDeclaratorId ('=' variableInitializer)?;
- t174: arguments | Identifier arguments? | '.' Identifier arguments?;
- t164: modifier* interfaceMemberDeclaration;
- t60: classBody | typeListSuf classBody | typeList classBody | 'implements' typeList classBody | typeSuf ('implements' typeList)? classBody | type ('implements' typeList)? classBody | 'extends' type ('implements' typeList)? classBody | typeParametersSuf ('extends' type)? ('implements' typeList)? classBody | typeParameters ('extends' type)? ('implements' typeList)? classBody | Identifier typeParameters? ('extends' type)? ('implements' typeList)? classBody | 'class' Identifier typeParameters? ('extends' type)? ('implements' typeList)? classBody;
- t101: modifier* memberDeclaration;
- t212: variableDeclarators | typeSuf variableDeclarators | type variableDeclarators | variableModifier* type variableDeclarators | variableModifier variableModifier* type variableDeclarators;
- t233: '}' | blockStatement* '}' | blockStatement blockStatement* '}' | '{' blockStatement* '}';
- t19: ';' | variableDeclarators ';' | typeSuf variableDeclarators ';' | type variableDeclarators ';';
- t129: interfaceBody | typeListSuf interfaceBody | typeList interfaceBody | 'extends' typeList interfaceBody | typeParametersSuf ('extends' typeList)? interfaceBody | typeParameters ('extends' typeList)? interfaceBody | Identifier typeParameters? ('extends' typeList)? interfaceBody | 'interface' Identifier typeParameters? ('extends' typeList)? interfaceBody;
- t185: ';' | qualifiedNameListSuf ';' | qualifiedNameList ';' | 'throws' qualifiedNameList ';' | ('[' ']')* ('throws' qualifiedNameList)? ';' | ']' ('[' ']')* ('throws' qualifiedNameList)? ';' | '[' ']' ('[' ']')* ('throws' qualifiedNameList)? ';' | formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';' | Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';' | typeSuf Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';' | type Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';' | 'void' Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';';
- t169: ';' expression? ';' forUpdate?;
- t213: variableModifier* type variableDeclarators;
- t7: type | 'extends' type | 'super' type | '?' (('extends' | 'super') type)?;
- t16: annotation* Identifier arguments? classBody?;
- t31: methodBody | ';' | qualifiedNameListSuf (methodBody | ';') | qualifiedNameList (methodBody | ';') | 'throws' qualifiedNameList (methodBody | ';') | ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | ']' ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | '[' ']' ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | typeSuf Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | type Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';') | 'void' Identifier formalParameters ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';');
- t92: block | ')' block | Identifier ')' block | catchTypeSuf Identifier ')' block | catchType Identifier ')' block | variableModifier* catchType Identifier ')' block | variableModifier variableModifier* catchType Identifier ')' block | '(' variableModifier* catchType Identifier ')' block | 'catch' '(' variableModifier* catchType Identifier ')' block;
- t103: defaultValue | ')' defaultValue? | '(' ')' defaultValue? | Identifier '(' ')' defaultValue?;
- t191: switchLabel* blockStatement+;
- t230: ('throws' qualifiedNameList)? constructorBody;
- t32: ('[' ']')* ('throws' qualifiedNameList)? (methodBody | ';');
- t76: localVariableDeclaration | expressionList;
- t43: (',' elementValue)* (',')? '}';
- t127: ';' | (',' constantDeclarator)* ';' | constantDeclarator (',' constantDeclarator)* ';' | ',' constantDeclarator (',' constantDeclarator)* ';' | typeSuf constantDeclarator (',' constantDeclarator)* ';' | type constantDeclarator (',' constantDeclarator)* ';';
- t200: ','? enumBodyDeclarations? '}';
- t57: ')' statement;
- t34: methodDeclaration | typeParametersSuf methodDeclaration | typeParameters methodDeclaration;
- t80: ']' ('[' expression ']')* ('[' ']')*;
- t151: (',' expression)*;
- t38: (',' variableDeclarator)* | variableDeclarator (',' variableDeclarator)* | ',' variableDeclarator (',' variableDeclarator)*;
- t45: variableModifier* type '...' variableDeclaratorId;
- t165: ')' | expressionList ')' | '(' expressionList? ')';
- t107: (',' formalParameter)* (',' lastFormalParameter)?;
- t183: ')' | ';' ')' | resources ';'? ')' | '(' resources ';'? ')';
- t39: (',' variableDeclarator)*;
- t96: ')';
- t203: arrayInitializer | expression;
- t136: variableDeclaratorIdSuf | variableDeclaratorId | typeSuf variableDeclaratorId | type variableDeclaratorId | variableModifier* type variableDeclaratorId | variableModifier variableModifier* type variableDeclaratorId;
- t51: statement ('else' statement)? | statement | ';' | '{' switchBlockStatementGroup* switchLabel* '}' | block;
- t123: variableModifier* classOrInterfaceType variableDeclaratorId '=' expression;
- t137: variableModifier* type variableDeclaratorId;
- t199: '}';
- t216: interfaceBodyDeclaration* '}';
- t44: variableDeclaratorIdSuf | variableDeclaratorId | '...' variableDeclaratorId | typeSuf '...' variableDeclaratorId | type '...' variableDeclaratorId | variableModifier* type '...' variableDeclaratorId | variableModifier variableModifier* type '...' variableDeclaratorId;
- t184: ';'? ')';
- t48: block | ';' | expression ';' | ':' expression ';' | expression (':' expression)? ';' | ASSERT expression (':' expression)? ';' | statement | 'else' statement | statement ('else' statement)? | parExpression statement ('else' statement)? | 'if' parExpression statement ('else' statement)? | ')' statement | forControl ')' statement | '(' forControl ')' statement | 'for' '(' forControl ')' statement | parExpression statement | 'while' parExpression statement | parExpression ';' | 'while' parExpression ';' | statement 'while' parExpression ';' | 'do' statement 'while' parExpression ';' | finallyBlock | catchClause catchClause* finallyBlock? | block (catchClause+ finallyBlock? | finallyBlock) | 'try' block (catchClause+ finallyBlock? | finallyBlock) | catchClause* finallyBlock? | block catchClause* finallyBlock? | resourceSpecification block catchClause* finallyBlock? | 'try' resourceSpecification block catchClause* finallyBlock? | '}' | switchLabel* '}' | switchLabel switchLabel* '}' | switchBlockStatementGroup* switchLabel* '}' | switchBlockStatementGroup switchBlockStatementGroup* switchLabel* '}' | '{' switchBlockStatementGroup* switchLabel* '}' | parExpression '{' switchBlockStatementGroup* switchLabel* '}' | 'switch' parExpression '{' switchBlockStatementGroup* switchLabel* '}' | parExpression block | 'synchronized' parExpression block | 'return' expression? ';' | 'throw' expression ';' | Identifier ';' | 'break' Identifier? ';' | 'continue' Identifier? ';' | statementExpression ';' | ':' statement | Identifier ':' statement;
- t108: annotationTypeBody | Identifier annotationTypeBody | 'interface' Identifier annotationTypeBody | '@' 'interface' Identifier annotationTypeBody;
- t125: ':' | constantExpression ':' | 'case' constantExpression ':' | enumConstantNameSuf ':' | enumConstantName ':' | 'case' enumConstantName ':' | 'default' ':';
- t228: constructorBody | qualifiedNameListSuf constructorBody | qualifiedNameList constructorBody | 'throws' qualifiedNameList constructorBody | formalParameters ('throws' qualifiedNameList)? constructorBody | Identifier formalParameters ('throws' qualifiedNameList)? constructorBody;
- t99: ';' | block | 'static' block | memberDeclaration | modifier* memberDeclaration | modifier modifier* memberDeclaration;
- t120: ')' | expression ')' | '(' expression ')';
- t206: classCreatorRest | nonWildcardTypeArgumentsOrDiamondSuf classCreatorRest | nonWildcardTypeArgumentsOrDiamond classCreatorRest | Identifier nonWildcardTypeArgumentsOrDiamond? classCreatorRest;
- t176: localVariableDeclarationStatement | statement | typeDeclaration;
- t217: constDeclaration | interfaceMethodDeclaration | genericInterfaceMethodDeclaration | interfaceDeclaration | annotationTypeDeclaration | classDeclaration | enumDeclaration;
- // LEXER
- // §3.9 Keywords
- ABSTRACT : 'abstract';
- ASSERT : 'assert';
- BOOLEAN : 'boolean';
- BREAK : 'break';
- BYTE : 'byte';
- CASE : 'case';
- CATCH : 'catch';
- CHAR : 'char';
- CLASS : 'class';
- CONST : 'const';
- CONTINUE : 'continue';
- DEFAULT : 'default';
- DO : 'do';
- DOUBLE : 'double';
- ELSE : 'else';
- ENUM : 'enum';
- EXTENDS : 'extends';
- FINAL : 'final';
- FINALLY : 'finally';
- FLOAT : 'float';
- FOR : 'for';
- IF : 'if';
- GOTO : 'goto';
- IMPLEMENTS : 'implements';
- IMPORT : 'import';
- INSTANCEOF : 'instanceof';
- INT : 'int';
- INTERFACE : 'interface';
- LONG : 'long';
- NATIVE : 'native';
- NEW : 'new';
- PACKAGE : 'package';
- PRIVATE : 'private';
- PROTECTED : 'protected';
- PUBLIC : 'public';
- RETURN : 'return';
- SHORT : 'short';
- STATIC : 'static';
- STRICTFP : 'strictfp';
- SUPER : 'super';
- SWITCH : 'switch';
- SYNCHRONIZED : 'synchronized';
- THIS : 'this';
- THROW : 'throw';
- THROWS : 'throws';
- TRANSIENT : 'transient';
- TRY : 'try';
- VOID : 'void';
- VOLATILE : 'volatile';
- WHILE : 'while';
- // §3.10.1 Integer Literals
- IntegerLiteral
- : DecimalIntegerLiteral
- | HexIntegerLiteral
- | OctalIntegerLiteral
- | BinaryIntegerLiteral
- ;
- fragment
- DecimalIntegerLiteral
- : DecimalNumeral IntegerTypeSuffix?
- ;
- fragment
- HexIntegerLiteral
- : HexNumeral IntegerTypeSuffix?
- ;
- fragment
- OctalIntegerLiteral
- : OctalNumeral IntegerTypeSuffix?
- ;
- fragment
- BinaryIntegerLiteral
- : BinaryNumeral IntegerTypeSuffix?
- ;
- fragment
- IntegerTypeSuffix
- : [lL]
- ;
- fragment
- DecimalNumeral
- : '0'
- | NonZeroDigit (Digits? | Underscores Digits)
- ;
- fragment
- Digits
- : Digit (DigitOrUnderscore* Digit)?
- ;
- fragment
- Digit
- : '0'
- | NonZeroDigit
- ;
- fragment
- NonZeroDigit
- : [1-9]
- ;
- fragment
- DigitOrUnderscore
- : Digit
- | '_'
- ;
- fragment
- Underscores
- : '_'+
- ;
- fragment
- HexNumeral
- : '0' [xX] HexDigits
- ;
- fragment
- HexDigits
- : HexDigit (HexDigitOrUnderscore* HexDigit)?
- ;
- fragment
- HexDigit
- : [0-9a-fA-F]
- ;
- fragment
- HexDigitOrUnderscore
- : HexDigit
- | '_'
- ;
- fragment
- OctalNumeral
- : '0' Underscores? OctalDigits
- ;
- fragment
- OctalDigits
- : OctalDigit (OctalDigitOrUnderscore* OctalDigit)?
- ;
- fragment
- OctalDigit
- : [0-7]
- ;
- fragment
- OctalDigitOrUnderscore
- : OctalDigit
- | '_'
- ;
- fragment
- BinaryNumeral
- : '0' [bB] BinaryDigits
- ;
- fragment
- BinaryDigits
- : BinaryDigit (BinaryDigitOrUnderscore* BinaryDigit)?
- ;
- fragment
- BinaryDigit
- : [01]
- ;
- fragment
- BinaryDigitOrUnderscore
- : BinaryDigit
- | '_'
- ;
- // §3.10.2 Floating-Point Literals
- FloatingPointLiteral
- : DecimalFloatingPointLiteral
- | HexadecimalFloatingPointLiteral
- ;
- fragment
- DecimalFloatingPointLiteral
- : Digits '.' Digits? ExponentPart? FloatTypeSuffix?
- | '.' Digits ExponentPart? FloatTypeSuffix?
- | Digits ExponentPart FloatTypeSuffix?
- | Digits FloatTypeSuffix
- ;
- fragment
- ExponentPart
- : ExponentIndicator SignedInteger
- ;
- fragment
- ExponentIndicator
- : [eE]
- ;
- fragment
- SignedInteger
- : Sign? Digits
- ;
- fragment
- Sign
- : [+-]
- ;
- fragment
- FloatTypeSuffix
- : [fFdD]
- ;
- fragment
- HexadecimalFloatingPointLiteral
- : HexSignificand BinaryExponent FloatTypeSuffix?
- ;
- fragment
- HexSignificand
- : HexNumeral '.'?
- | '0' [xX] HexDigits? '.' HexDigits
- ;
- fragment
- BinaryExponent
- : BinaryExponentIndicator SignedInteger
- ;
- fragment
- BinaryExponentIndicator
- : [pP]
- ;
- // §3.10.3 Boolean Literals
- BooleanLiteral
- : 'true'
- | 'false'
- ;
- // §3.10.4 Character Literals
- CharacterLiteral
- : '\'' SingleCharacter '\''
- | '\'' EscapeSequence '\''
- ;
- fragment
- SingleCharacter
- : ~['\\]
- ;
- // §3.10.5 String Literals
- StringLiteral
- : '"' StringCharacters? '"'
- ;
- fragment
- StringCharacters
- : StringCharacter+
- ;
- fragment
- StringCharacter
- : ~["\\]
- | EscapeSequence
- ;
- // §3.10.6 Escape Sequences for Character and String Literals
- fragment
- EscapeSequence
- : '\\' [btnfr"'\\]
- | OctalEscape
- | UnicodeEscape
- ;
- fragment
- OctalEscape
- : '\\' OctalDigit
- | '\\' OctalDigit OctalDigit
- | '\\' ZeroToThree OctalDigit OctalDigit
- ;
- fragment
- UnicodeEscape
- : '\\' 'u' HexDigit HexDigit HexDigit HexDigit
- ;
- fragment
- ZeroToThree
- : [0-3]
- ;
- // §3.10.7 The Null Literal
- NullLiteral
- : 'null'
- ;
- // §3.11 Separators
- LPAREN : '(';
- RPAREN : ')';
- LBRACE : '{';
- RBRACE : '}';
- LBRACK : '[';
- RBRACK : ']';
- SEMI : ';';
- COMMA : ',';
- DOT : '.';
- // §3.12 Operators
- ASSIGN : '=';
- GT : '>';
- LT : '<';
- BANG : '!';
- TILDE : '~';
- QUESTION : '?';
- COLON : ':';
- EQUAL : '==';
- LE : '<=';
- GE : '>=';
- NOTEQUAL : '!=';
- AND : '&&';
- OR : '||';
- INC : '++';
- DEC : '--';
- ADD : '+';
- SUB : '-';
- MUL : '*';
- DIV : '/';
- BITAND : '&';
- BITOR : '|';
- CARET : '^';
- MOD : '%';
- ADD_ASSIGN : '+=';
- SUB_ASSIGN : '-=';
- MUL_ASSIGN : '*=';
- DIV_ASSIGN : '/=';
- AND_ASSIGN : '&=';
- OR_ASSIGN : '|=';
- XOR_ASSIGN : '^=';
- MOD_ASSIGN : '%=';
- LSHIFT_ASSIGN : '<<=';
- RSHIFT_ASSIGN : '>>=';
- URSHIFT_ASSIGN : '>>>=';
- // §3.8 Identifiers (must appear after all keywords in the grammar)
- Identifier
- : JavaLetter JavaLetterOrDigit*
- ;
- fragment
- JavaLetter
- : [a-zA-Z$_] // these are the "java letters" below 0xFF
- | // covers all characters above 0xFF which are not a surrogate
- ~[\u0000-\u00FF\uD800-\uDBFF]
- {Character.isJavaIdentifierStart(_input.LA(-1))}?
- | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
- [\uD800-\uDBFF] [\uDC00-\uDFFF]
- {Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
- ;
- fragment
- JavaLetterOrDigit
- : [a-zA-Z0-9$_] // these are the "java letters or digits" below 0xFF
- | // covers all characters above 0xFF which are not a surrogate
- ~[\u0000-\u00FF\uD800-\uDBFF]
- {Character.isJavaIdentifierPart(_input.LA(-1))}?
- | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
- [\uD800-\uDBFF] [\uDC00-\uDFFF]
- {Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
- ;
- //
- // Additional symbols not defined in the lexical specification
- //
- AT : '@';
- ELLIPSIS : '...';
- //
- // Whitespace and comments
- //
- WS : [ \t\r\n\u000C]+ -> skip
- ;
- COMMENT
- : '/*' .*? '*/' -> skip
- ;
- LINE_COMMENT
- : '//' ~[\r\n]* -> skip
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement