// Generated from Java7.g4 by ANTLR 4.6 package husacct.analyse.task.analyse.java.parsing; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; import org.antlr.v4.runtime.*; import org.antlr.v4.runtime.tree.*; import java.util.List; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class JavaParser extends Parser { static { RuntimeMetaData.checkVersion("4.6", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); public static final int T__0=1, T__1=2, ABSTRACT=3, ASSERT=4, BOOLEAN=5, BREAK=6, BYTE=7, CASE=8, CATCH=9, CHAR=10, CLASS=11, CONST=12, CONTINUE=13, DEFAULT=14, DO=15, DOUBLE=16, ELSE=17, ENUM=18, EXTENDS=19, FINAL=20, FINALLY=21, FLOAT=22, FOR=23, IF=24, GOTO=25, IMPLEMENTS=26, IMPORT=27, INSTANCEOF=28, INT=29, INTERFACE=30, LONG=31, NATIVE=32, NEW=33, PACKAGE=34, PRIVATE=35, PROTECTED=36, PUBLIC=37, RETURN=38, SHORT=39, STATIC=40, STRICTFP=41, SUPER=42, SWITCH=43, SYNCHRONIZED=44, THIS=45, THROW=46, THROWS=47, TRANSIENT=48, TRY=49, VOID=50, VOLATILE=51, WHILE=52, IntegerLiteral=53, FloatingPointLiteral=54, BooleanLiteral=55, CharacterLiteral=56, StringLiteral=57, NullLiteral=58, LPAREN=59, RPAREN=60, LBRACE=61, RBRACE=62, LBRACK=63, RBRACK=64, SEMI=65, COMMA=66, DOT=67, ASSIGN=68, GT=69, LT=70, BANG=71, TILDE=72, QUESTION=73, COLON=74, EQUAL=75, LE=76, GE=77, NOTEQUAL=78, AND=79, OR=80, INC=81, DEC=82, ADD=83, SUB=84, MUL=85, DIV=86, BITAND=87, BITOR=88, CARET=89, MOD=90, ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, LINE_COMMENT=107; public static final int RULE_compilationUnit = 0, RULE_packageDeclaration = 1, RULE_importDeclaration = 2, RULE_typeDeclaration = 3, RULE_modifier = 4, RULE_classOrInterfaceModifier = 5, RULE_variableModifier = 6, RULE_classDeclaration = 7, RULE_typeParameters = 8, RULE_typeParameter = 9, RULE_typeBound = 10, RULE_enumDeclaration = 11, RULE_enumConstants = 12, RULE_enumConstant = 13, RULE_enumBodyDeclarations = 14, RULE_interfaceDeclaration = 15, RULE_typeList = 16, RULE_classBody = 17, RULE_interfaceBody = 18, RULE_classBodyDeclaration = 19, RULE_memberDeclaration = 20, RULE_methodDeclaration = 21, RULE_genericMethodDeclaration = 22, RULE_constructorDeclaration = 23, RULE_genericConstructorDeclaration = 24, RULE_fieldDeclaration = 25, RULE_interfaceBodyDeclaration = 26, RULE_interfaceMemberDeclaration = 27, RULE_constDeclaration = 28, RULE_constantDeclarator = 29, RULE_interfaceMethodDeclaration = 30, RULE_genericInterfaceMethodDeclaration = 31, RULE_variableDeclarators = 32, RULE_variableDeclarator = 33, RULE_variableDeclaratorId = 34, RULE_variableInitializer = 35, RULE_arrayInitializer = 36, RULE_enumConstantName = 37, RULE_typeType = 38, RULE_classOrInterfaceType = 39, RULE_primitiveType = 40, RULE_typeArguments = 41, RULE_typeArgument = 42, RULE_qualifiedNameList = 43, RULE_formalParameters = 44, RULE_formalParameterList = 45, RULE_formalParameter = 46, RULE_lastFormalParameter = 47, RULE_methodBody = 48, RULE_constructorBody = 49, RULE_qualifiedName = 50, RULE_literal = 51, RULE_annotation = 52, RULE_annotationName = 53, RULE_elementValuePairs = 54, RULE_elementValuePair = 55, RULE_elementValue = 56, RULE_elementValueArrayInitializer = 57, RULE_annotationTypeDeclaration = 58, RULE_annotationTypeBody = 59, RULE_annotationTypeElementDeclaration = 60, RULE_annotationTypeElementRest = 61, RULE_annotationMethodOrConstantRest = 62, RULE_annotationMethodRest = 63, RULE_annotationConstantRest = 64, RULE_defaultValue = 65, RULE_block = 66, RULE_blockStatement = 67, RULE_localVariableDeclarationStatement = 68, RULE_localVariableDeclaration = 69, RULE_statement = 70, RULE_catchClause = 71, RULE_catchType = 72, RULE_finallyBlock = 73, RULE_resourceSpecification = 74, RULE_resources = 75, RULE_resource = 76, RULE_switchBlockStatementGroup = 77, RULE_switchLabel = 78, RULE_forControl = 79, RULE_forInit = 80, RULE_enhancedForControl = 81, RULE_forUpdate = 82, RULE_parExpression = 83, RULE_expressionList = 84, RULE_statementExpression = 85, RULE_constantExpression = 86, RULE_expression = 87, RULE_primary = 88, RULE_arrayType = 89, RULE_dims = 90, RULE_lambdaExpression = 91, RULE_lambdaParameters = 92, RULE_inferredFormalParameterList = 93, RULE_lambdaBody = 94, RULE_creator = 95, RULE_createdName = 96, RULE_innerCreator = 97, RULE_arrayCreatorRest = 98, RULE_classCreatorRest = 99, RULE_explicitGenericInvocation = 100, RULE_nonWildcardTypeArguments = 101, RULE_typeArgumentsOrDiamond = 102, RULE_nonWildcardTypeArgumentsOrDiamond = 103, RULE_superSuffix = 104, RULE_explicitGenericInvocationSuffix = 105, RULE_arguments = 106; public static final String[] ruleNames = { "compilationUnit", "packageDeclaration", "importDeclaration", "typeDeclaration", "modifier", "classOrInterfaceModifier", "variableModifier", "classDeclaration", "typeParameters", "typeParameter", "typeBound", "enumDeclaration", "enumConstants", "enumConstant", "enumBodyDeclarations", "interfaceDeclaration", "typeList", "classBody", "interfaceBody", "classBodyDeclaration", "memberDeclaration", "methodDeclaration", "genericMethodDeclaration", "constructorDeclaration", "genericConstructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", "interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", "interfaceMethodDeclaration", "genericInterfaceMethodDeclaration", "variableDeclarators", "variableDeclarator", "variableDeclaratorId", "variableInitializer", "arrayInitializer", "enumConstantName", "typeType", "classOrInterfaceType", "primitiveType", "typeArguments", "typeArgument", "qualifiedNameList", "formalParameters", "formalParameterList", "formalParameter", "lastFormalParameter", "methodBody", "constructorBody", "qualifiedName", "literal", "annotation", "annotationName", "elementValuePairs", "elementValuePair", "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", "annotationTypeBody", "annotationTypeElementDeclaration", "annotationTypeElementRest", "annotationMethodOrConstantRest", "annotationMethodRest", "annotationConstantRest", "defaultValue", "block", "blockStatement", "localVariableDeclarationStatement", "localVariableDeclaration", "statement", "catchClause", "catchType", "finallyBlock", "resourceSpecification", "resources", "resource", "switchBlockStatementGroup", "switchLabel", "forControl", "forInit", "enhancedForControl", "forUpdate", "parExpression", "expressionList", "statementExpression", "constantExpression", "expression", "primary", "arrayType", "dims", "lambdaExpression", "lambdaParameters", "inferredFormalParameterList", "lambdaBody", "creator", "createdName", "innerCreator", "arrayCreatorRest", "classCreatorRest", "explicitGenericInvocation", "nonWildcardTypeArguments", "typeArgumentsOrDiamond", "nonWildcardTypeArgumentsOrDiamond", "superSuffix", "explicitGenericInvocationSuffix", "arguments" }; private static final String[] _LITERAL_NAMES = { null, "'::'", "'->'", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'>>>='", null, "'@'", "'...'" }; private static final String[] _SYMBOLIC_NAMES = { null, null, null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "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", "Identifier", "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); /** * @deprecated Use {@link #VOCABULARY} instead. */ @Deprecated public static final String[] tokenNames; static { tokenNames = new String[_SYMBOLIC_NAMES.length]; for (int i = 0; i < tokenNames.length; i++) { tokenNames[i] = VOCABULARY.getLiteralName(i); if (tokenNames[i] == null) { tokenNames[i] = VOCABULARY.getSymbolicName(i); } if (tokenNames[i] == null) { tokenNames[i] = "<INVALID>"; } } } @Override @Deprecated public String[] getTokenNames() { return tokenNames; } @Override public Vocabulary getVocabulary() { return VOCABULARY; } @Override public String getGrammarFileName() { return "Java7.g4"; } @Override public String[] getRuleNames() { return ruleNames; } @Override public String getSerializedATN() { return _serializedATN; } @Override public ATN getATN() { return _ATN; } public JavaParser(TokenStream input) { super(input); _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } public static class CompilationUnitContext extends ParserRuleContext { public TerminalNode EOF() { return getToken(Recognizer.EOF, 0); } public PackageDeclarationContext packageDeclaration() { return getRuleContext(PackageDeclarationContext.class,0); } public List<ImportDeclarationContext> importDeclaration() { return getRuleContexts(ImportDeclarationContext.class); } public ImportDeclarationContext importDeclaration(int i) { return getRuleContext(ImportDeclarationContext.class,i); } public List<TypeDeclarationContext> typeDeclaration() { return getRuleContexts(TypeDeclarationContext.class); } public TypeDeclarationContext typeDeclaration(int i) { return getRuleContext(TypeDeclarationContext.class,i); } public CompilationUnitContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_compilationUnit; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCompilationUnit(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCompilationUnit(this); } } public final CompilationUnitContext compilationUnit() throws RecognitionException { CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); enterRule(_localctx, 0, RULE_compilationUnit); int _la; try { enterOuterAlt(_localctx, 1); { setState(215); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { case 1: { setState(214); packageDeclaration(); } break; } setState(220); _errHandler.sync(this); _la = _input.LA(1); while (_la==IMPORT) { { { setState(217); importDeclaration(); } } setState(222); _errHandler.sync(this); _la = _input.LA(1); } setState(226); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << DEFAULT) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==SEMI || _la==AT) { { { setState(223); typeDeclaration(); } } setState(228); _errHandler.sync(this); _la = _input.LA(1); } setState(229); match(EOF); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class PackageDeclarationContext extends ParserRuleContext { public QualifiedNameContext qualifiedName() { return getRuleContext(QualifiedNameContext.class,0); } public List<AnnotationContext> annotation() { return getRuleContexts(AnnotationContext.class); } public AnnotationContext annotation(int i) { return getRuleContext(AnnotationContext.class,i); } public PackageDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPackageDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPackageDeclaration(this); } } public final PackageDeclarationContext packageDeclaration() throws RecognitionException { PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); enterRule(_localctx, 2, RULE_packageDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(234); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(231); annotation(); } } setState(236); _errHandler.sync(this); _la = _input.LA(1); } setState(237); match(PACKAGE); setState(238); qualifiedName(); setState(239); match(SEMI); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ImportDeclarationContext extends ParserRuleContext { public QualifiedNameContext qualifiedName() { return getRuleContext(QualifiedNameContext.class,0); } public ImportDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_importDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterImportDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitImportDeclaration(this); } } public final ImportDeclarationContext importDeclaration() throws RecognitionException { ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); enterRule(_localctx, 4, RULE_importDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(241); match(IMPORT); setState(243); _errHandler.sync(this); _la = _input.LA(1); if (_la==STATIC) { { setState(242); match(STATIC); } } setState(245); qualifiedName(); setState(248); _errHandler.sync(this); _la = _input.LA(1); if (_la==DOT) { { setState(246); match(DOT); setState(247); match(MUL); } } setState(250); match(SEMI); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeDeclarationContext extends ParserRuleContext { public ClassDeclarationContext classDeclaration() { return getRuleContext(ClassDeclarationContext.class,0); } public List<ClassOrInterfaceModifierContext> classOrInterfaceModifier() { return getRuleContexts(ClassOrInterfaceModifierContext.class); } public ClassOrInterfaceModifierContext classOrInterfaceModifier(int i) { return getRuleContext(ClassOrInterfaceModifierContext.class,i); } public EnumDeclarationContext enumDeclaration() { return getRuleContext(EnumDeclarationContext.class,0); } public InterfaceDeclarationContext interfaceDeclaration() { return getRuleContext(InterfaceDeclarationContext.class,0); } public AnnotationTypeDeclarationContext annotationTypeDeclaration() { return getRuleContext(AnnotationTypeDeclarationContext.class,0); } public TypeDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeDeclaration(this); } } public final TypeDeclarationContext typeDeclaration() throws RecognitionException { TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); enterRule(_localctx, 6, RULE_typeDeclaration); int _la; try { int _alt; setState(281); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(255); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { setState(252); classOrInterfaceModifier(); } } setState(257); _errHandler.sync(this); _la = _input.LA(1); } setState(258); classDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(262); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { setState(259); classOrInterfaceModifier(); } } setState(264); _errHandler.sync(this); _la = _input.LA(1); } setState(265); enumDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(269); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { setState(266); classOrInterfaceModifier(); } } setState(271); _errHandler.sync(this); _la = _input.LA(1); } setState(272); interfaceDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { setState(276); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,9,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(273); classOrInterfaceModifier(); } } } setState(278); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,9,_ctx); } setState(279); annotationTypeDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { setState(280); match(SEMI); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ModifierContext extends ParserRuleContext { public ClassOrInterfaceModifierContext classOrInterfaceModifier() { return getRuleContext(ClassOrInterfaceModifierContext.class,0); } public ModifierContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_modifier; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterModifier(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitModifier(this); } } public final ModifierContext modifier() throws RecognitionException { ModifierContext _localctx = new ModifierContext(_ctx, getState()); enterRule(_localctx, 8, RULE_modifier); int _la; try { setState(285); _errHandler.sync(this); switch (_input.LA(1)) { case ABSTRACT: case DEFAULT: case FINAL: case PRIVATE: case PROTECTED: case PUBLIC: case STATIC: case STRICTFP: case AT: enterOuterAlt(_localctx, 1); { setState(283); classOrInterfaceModifier(); } break; case NATIVE: case SYNCHRONIZED: case TRANSIENT: case VOLATILE: enterOuterAlt(_localctx, 2); { setState(284); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NATIVE) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassOrInterfaceModifierContext extends ParserRuleContext { public AnnotationContext annotation() { return getRuleContext(AnnotationContext.class,0); } public ClassOrInterfaceModifierContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classOrInterfaceModifier; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassOrInterfaceModifier(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassOrInterfaceModifier(this); } } public final ClassOrInterfaceModifierContext classOrInterfaceModifier() throws RecognitionException { ClassOrInterfaceModifierContext _localctx = new ClassOrInterfaceModifierContext(_ctx, getState()); enterRule(_localctx, 10, RULE_classOrInterfaceModifier); int _la; try { setState(289); _errHandler.sync(this); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { setState(287); annotation(); } break; case ABSTRACT: case DEFAULT: case FINAL: case PRIVATE: case PROTECTED: case PUBLIC: case STATIC: case STRICTFP: enterOuterAlt(_localctx, 2); { setState(288); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class VariableModifierContext extends ParserRuleContext { public AnnotationContext annotation() { return getRuleContext(AnnotationContext.class,0); } public VariableModifierContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableModifier; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableModifier(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableModifier(this); } } public final VariableModifierContext variableModifier() throws RecognitionException { VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); enterRule(_localctx, 12, RULE_variableModifier); try { setState(293); _errHandler.sync(this); switch (_input.LA(1)) { case FINAL: enterOuterAlt(_localctx, 1); { setState(291); match(FINAL); } break; case AT: enterOuterAlt(_localctx, 2); { setState(292); annotation(); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public ClassBodyContext classBody() { return getRuleContext(ClassBodyContext.class,0); } public TypeParametersContext typeParameters() { return getRuleContext(TypeParametersContext.class,0); } public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public TypeListContext typeList() { return getRuleContext(TypeListContext.class,0); } public ClassDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassDeclaration(this); } } public final ClassDeclarationContext classDeclaration() throws RecognitionException { ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); enterRule(_localctx, 14, RULE_classDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(295); match(CLASS); setState(296); match(Identifier); setState(298); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(297); typeParameters(); } } setState(302); _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { setState(300); match(EXTENDS); setState(301); typeType(); } } setState(306); _errHandler.sync(this); _la = _input.LA(1); if (_la==IMPLEMENTS) { { setState(304); match(IMPLEMENTS); setState(305); typeList(); } } setState(308); classBody(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeParametersContext extends ParserRuleContext { public List<TypeParameterContext> typeParameter() { return getRuleContexts(TypeParameterContext.class); } public TypeParameterContext typeParameter(int i) { return getRuleContext(TypeParameterContext.class,i); } public TypeParametersContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameters; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeParameters(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeParameters(this); } } public final TypeParametersContext typeParameters() throws RecognitionException { TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); enterRule(_localctx, 16, RULE_typeParameters); int _la; try { enterOuterAlt(_localctx, 1); { setState(310); match(LT); setState(311); typeParameter(); setState(316); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(312); match(COMMA); setState(313); typeParameter(); } } setState(318); _errHandler.sync(this); _la = _input.LA(1); } setState(319); match(GT); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeParameterContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public List<AnnotationContext> annotation() { return getRuleContexts(AnnotationContext.class); } public AnnotationContext annotation(int i) { return getRuleContext(AnnotationContext.class,i); } public TypeBoundContext typeBound() { return getRuleContext(TypeBoundContext.class,0); } public TypeParameterContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameter; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeParameter(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeParameter(this); } } public final TypeParameterContext typeParameter() throws RecognitionException { TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); enterRule(_localctx, 18, RULE_typeParameter); int _la; try { enterOuterAlt(_localctx, 1); { setState(324); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(321); annotation(); } } setState(326); _errHandler.sync(this); _la = _input.LA(1); } setState(327); match(Identifier); setState(330); _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { setState(328); match(EXTENDS); setState(329); typeBound(); } } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeBoundContext extends ParserRuleContext { public List<TypeTypeContext> typeType() { return getRuleContexts(TypeTypeContext.class); } public TypeTypeContext typeType(int i) { return getRuleContext(TypeTypeContext.class,i); } public TypeBoundContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeBound; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeBound(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeBound(this); } } public final TypeBoundContext typeBound() throws RecognitionException { TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); enterRule(_localctx, 20, RULE_typeBound); int _la; try { enterOuterAlt(_localctx, 1); { setState(332); typeType(); setState(337); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITAND) { { { setState(333); match(BITAND); setState(334); typeType(); } } setState(339); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnumDeclarationContext extends ParserRuleContext { public TerminalNode ENUM() { return getToken(JavaParser.ENUM, 0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public TypeListContext typeList() { return getRuleContext(TypeListContext.class,0); } public EnumConstantsContext enumConstants() { return getRuleContext(EnumConstantsContext.class,0); } public EnumBodyDeclarationsContext enumBodyDeclarations() { return getRuleContext(EnumBodyDeclarationsContext.class,0); } public EnumDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumDeclaration(this); } } public final EnumDeclarationContext enumDeclaration() throws RecognitionException { EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); enterRule(_localctx, 22, RULE_enumDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(340); match(ENUM); setState(341); match(Identifier); setState(344); _errHandler.sync(this); _la = _input.LA(1); if (_la==IMPLEMENTS) { { setState(342); match(IMPLEMENTS); setState(343); typeList(); } } setState(346); match(LBRACE); setState(348); _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier || _la==AT) { { setState(347); enumConstants(); } } setState(351); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { setState(350); match(COMMA); } } setState(354); _errHandler.sync(this); _la = _input.LA(1); if (_la==SEMI) { { setState(353); enumBodyDeclarations(); } } setState(356); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnumConstantsContext extends ParserRuleContext { public List<EnumConstantContext> enumConstant() { return getRuleContexts(EnumConstantContext.class); } public EnumConstantContext enumConstant(int i) { return getRuleContext(EnumConstantContext.class,i); } public EnumConstantsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstants; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstants(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstants(this); } } public final EnumConstantsContext enumConstants() throws RecognitionException { EnumConstantsContext _localctx = new EnumConstantsContext(_ctx, getState()); enterRule(_localctx, 24, RULE_enumConstants); try { int _alt; enterOuterAlt(_localctx, 1); { setState(358); enumConstant(); setState(363); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(359); match(COMMA); setState(360); enumConstant(); } } } setState(365); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,25,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnumConstantContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public List<AnnotationContext> annotation() { return getRuleContexts(AnnotationContext.class); } public AnnotationContext annotation(int i) { return getRuleContext(AnnotationContext.class,i); } public ArgumentsContext arguments() { return getRuleContext(ArgumentsContext.class,0); } public ClassBodyContext classBody() { return getRuleContext(ClassBodyContext.class,0); } public EnumConstantContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstant; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstant(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstant(this); } } public final EnumConstantContext enumConstant() throws RecognitionException { EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); enterRule(_localctx, 26, RULE_enumConstant); int _la; try { enterOuterAlt(_localctx, 1); { setState(369); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(366); annotation(); } } setState(371); _errHandler.sync(this); _la = _input.LA(1); } setState(372); match(Identifier); setState(374); _errHandler.sync(this); _la = _input.LA(1); if (_la==LPAREN) { { setState(373); arguments(); } } setState(377); _errHandler.sync(this); _la = _input.LA(1); if (_la==LBRACE) { { setState(376); classBody(); } } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnumBodyDeclarationsContext extends ParserRuleContext { public List<ClassBodyDeclarationContext> classBodyDeclaration() { return getRuleContexts(ClassBodyDeclarationContext.class); } public ClassBodyDeclarationContext classBodyDeclaration(int i) { return getRuleContext(ClassBodyDeclarationContext.class,i); } public EnumBodyDeclarationsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumBodyDeclarations(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumBodyDeclarations(this); } } public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); enterRule(_localctx, 28, RULE_enumBodyDeclarations); int _la; try { enterOuterAlt(_localctx, 1); { setState(379); match(SEMI); setState(383); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (SEMI - 65)) | (1L << (LT - 65)) | (1L << (Identifier - 65)) | (1L << (AT - 65)))) != 0)) { { { setState(380); classBodyDeclaration(); } } setState(385); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InterfaceDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public InterfaceBodyContext interfaceBody() { return getRuleContext(InterfaceBodyContext.class,0); } public TypeParametersContext typeParameters() { return getRuleContext(TypeParametersContext.class,0); } public TypeListContext typeList() { return getRuleContext(TypeListContext.class,0); } public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceDeclaration(this); } } public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); enterRule(_localctx, 30, RULE_interfaceDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(386); match(INTERFACE); setState(387); match(Identifier); setState(389); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(388); typeParameters(); } } setState(393); _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS) { { setState(391); match(EXTENDS); setState(392); typeList(); } } setState(395); interfaceBody(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeListContext extends ParserRuleContext { public List<TypeTypeContext> typeType() { return getRuleContexts(TypeTypeContext.class); } public TypeTypeContext typeType(int i) { return getRuleContext(TypeTypeContext.class,i); } public TypeListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeList(this); } } public final TypeListContext typeList() throws RecognitionException { TypeListContext _localctx = new TypeListContext(_ctx, getState()); enterRule(_localctx, 32, RULE_typeList); int _la; try { enterOuterAlt(_localctx, 1); { setState(397); typeType(); setState(402); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(398); match(COMMA); setState(399); typeType(); } } setState(404); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassBodyContext extends ParserRuleContext { public List<ClassBodyDeclarationContext> classBodyDeclaration() { return getRuleContexts(ClassBodyDeclarationContext.class); } public ClassBodyDeclarationContext classBodyDeclaration(int i) { return getRuleContext(ClassBodyDeclarationContext.class,i); } public ClassBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassBody(this); } } public final ClassBodyContext classBody() throws RecognitionException { ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); enterRule(_localctx, 34, RULE_classBody); int _la; try { enterOuterAlt(_localctx, 1); { setState(405); match(LBRACE); setState(409); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (SEMI - 65)) | (1L << (LT - 65)) | (1L << (Identifier - 65)) | (1L << (AT - 65)))) != 0)) { { { setState(406); classBodyDeclaration(); } } setState(411); _errHandler.sync(this); _la = _input.LA(1); } setState(412); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InterfaceBodyContext extends ParserRuleContext { public List<InterfaceBodyDeclarationContext> interfaceBodyDeclaration() { return getRuleContexts(InterfaceBodyDeclarationContext.class); } public InterfaceBodyDeclarationContext interfaceBodyDeclaration(int i) { return getRuleContext(InterfaceBodyDeclarationContext.class,i); } public InterfaceBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceBody(this); } } public final InterfaceBodyContext interfaceBody() throws RecognitionException { InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); enterRule(_localctx, 36, RULE_interfaceBody); int _la; try { enterOuterAlt(_localctx, 1); { setState(414); match(LBRACE); setState(418); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (SEMI - 65)) | (1L << (LT - 65)) | (1L << (Identifier - 65)) | (1L << (AT - 65)))) != 0)) { { { setState(415); interfaceBodyDeclaration(); } } setState(420); _errHandler.sync(this); _la = _input.LA(1); } setState(421); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassBodyDeclarationContext extends ParserRuleContext { public BlockContext block() { return getRuleContext(BlockContext.class,0); } public MemberDeclarationContext memberDeclaration() { return getRuleContext(MemberDeclarationContext.class,0); } public List<ModifierContext> modifier() { return getRuleContexts(ModifierContext.class); } public ModifierContext modifier(int i) { return getRuleContext(ModifierContext.class,i); } public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassBodyDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassBodyDeclaration(this); } } public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); enterRule(_localctx, 38, RULE_classBodyDeclaration); int _la; try { int _alt; setState(435); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(423); match(SEMI); } break; case 2: enterOuterAlt(_localctx, 2); { setState(425); _errHandler.sync(this); _la = _input.LA(1); if (_la==STATIC) { { setState(424); match(STATIC); } } setState(427); block(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(431); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,36,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(428); modifier(); } } } setState(433); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,36,_ctx); } setState(434); memberDeclaration(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class MemberDeclarationContext extends ParserRuleContext { public MethodDeclarationContext methodDeclaration() { return getRuleContext(MethodDeclarationContext.class,0); } public GenericMethodDeclarationContext genericMethodDeclaration() { return getRuleContext(GenericMethodDeclarationContext.class,0); } public FieldDeclarationContext fieldDeclaration() { return getRuleContext(FieldDeclarationContext.class,0); } public ConstructorDeclarationContext constructorDeclaration() { return getRuleContext(ConstructorDeclarationContext.class,0); } public GenericConstructorDeclarationContext genericConstructorDeclaration() { return getRuleContext(GenericConstructorDeclarationContext.class,0); } public InterfaceDeclarationContext interfaceDeclaration() { return getRuleContext(InterfaceDeclarationContext.class,0); } public AnnotationTypeDeclarationContext annotationTypeDeclaration() { return getRuleContext(AnnotationTypeDeclarationContext.class,0); } public ClassDeclarationContext classDeclaration() { return getRuleContext(ClassDeclarationContext.class,0); } public EnumDeclarationContext enumDeclaration() { return getRuleContext(EnumDeclarationContext.class,0); } public MemberDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_memberDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMemberDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMemberDeclaration(this); } } public final MemberDeclarationContext memberDeclaration() throws RecognitionException { MemberDeclarationContext _localctx = new MemberDeclarationContext(_ctx, getState()); enterRule(_localctx, 40, RULE_memberDeclaration); try { setState(446); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(437); methodDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(438); genericMethodDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(439); fieldDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { setState(440); constructorDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { setState(441); genericConstructorDeclaration(); } break; case 6: enterOuterAlt(_localctx, 6); { setState(442); interfaceDeclaration(); } break; case 7: enterOuterAlt(_localctx, 7); { setState(443); annotationTypeDeclaration(); } break; case 8: enterOuterAlt(_localctx, 8); { setState(444); classDeclaration(); } break; case 9: enterOuterAlt(_localctx, 9); { setState(445); enumDeclaration(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class MethodDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public FormalParametersContext formalParameters() { return getRuleContext(FormalParametersContext.class,0); } public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public MethodBodyContext methodBody() { return getRuleContext(MethodBodyContext.class,0); } public QualifiedNameListContext qualifiedNameList() { return getRuleContext(QualifiedNameListContext.class,0); } public MethodDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMethodDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMethodDeclaration(this); } } public final MethodDeclarationContext methodDeclaration() throws RecognitionException { MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); enterRule(_localctx, 42, RULE_methodDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(450); _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: case Identifier: { setState(448); typeType(); } break; case VOID: { setState(449); match(VOID); } break; default: throw new NoViableAltException(this); } setState(452); match(Identifier); setState(453); formalParameters(); setState(458); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { setState(454); match(LBRACK); setState(455); match(RBRACK); } } setState(460); _errHandler.sync(this); _la = _input.LA(1); } setState(463); _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { setState(461); match(THROWS); setState(462); qualifiedNameList(); } } setState(467); _errHandler.sync(this); switch (_input.LA(1)) { case LBRACE: { setState(465); methodBody(); } break; case SEMI: { setState(466); match(SEMI); } break; default: throw new NoViableAltException(this); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class GenericMethodDeclarationContext extends ParserRuleContext { public TypeParametersContext typeParameters() { return getRuleContext(TypeParametersContext.class,0); } public MethodDeclarationContext methodDeclaration() { return getRuleContext(MethodDeclarationContext.class,0); } public GenericMethodDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_genericMethodDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericMethodDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericMethodDeclaration(this); } } public final GenericMethodDeclarationContext genericMethodDeclaration() throws RecognitionException { GenericMethodDeclarationContext _localctx = new GenericMethodDeclarationContext(_ctx, getState()); enterRule(_localctx, 44, RULE_genericMethodDeclaration); try { enterOuterAlt(_localctx, 1); { setState(469); typeParameters(); setState(470); methodDeclaration(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ConstructorDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public FormalParametersContext formalParameters() { return getRuleContext(FormalParametersContext.class,0); } public ConstructorBodyContext constructorBody() { return getRuleContext(ConstructorBodyContext.class,0); } public QualifiedNameListContext qualifiedNameList() { return getRuleContext(QualifiedNameListContext.class,0); } public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstructorDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstructorDeclaration(this); } } public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); enterRule(_localctx, 46, RULE_constructorDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(472); match(Identifier); setState(473); formalParameters(); setState(476); _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { setState(474); match(THROWS); setState(475); qualifiedNameList(); } } setState(478); constructorBody(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class GenericConstructorDeclarationContext extends ParserRuleContext { public TypeParametersContext typeParameters() { return getRuleContext(TypeParametersContext.class,0); } public ConstructorDeclarationContext constructorDeclaration() { return getRuleContext(ConstructorDeclarationContext.class,0); } public GenericConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_genericConstructorDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericConstructorDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericConstructorDeclaration(this); } } public final GenericConstructorDeclarationContext genericConstructorDeclaration() throws RecognitionException { GenericConstructorDeclarationContext _localctx = new GenericConstructorDeclarationContext(_ctx, getState()); enterRule(_localctx, 48, RULE_genericConstructorDeclaration); try { enterOuterAlt(_localctx, 1); { setState(480); typeParameters(); setState(481); constructorDeclaration(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class FieldDeclarationContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public VariableDeclaratorsContext variableDeclarators() { return getRuleContext(VariableDeclaratorsContext.class,0); } public FieldDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFieldDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFieldDeclaration(this); } } public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); enterRule(_localctx, 50, RULE_fieldDeclaration); try { enterOuterAlt(_localctx, 1); { setState(483); typeType(); setState(484); variableDeclarators(); setState(485); match(SEMI); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InterfaceBodyDeclarationContext extends ParserRuleContext { public InterfaceMemberDeclarationContext interfaceMemberDeclaration() { return getRuleContext(InterfaceMemberDeclarationContext.class,0); } public List<ModifierContext> modifier() { return getRuleContexts(ModifierContext.class); } public ModifierContext modifier(int i) { return getRuleContext(ModifierContext.class,i); } public InterfaceBodyDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceBodyDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceBodyDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceBodyDeclaration(this); } } public final InterfaceBodyDeclarationContext interfaceBodyDeclaration() throws RecognitionException { InterfaceBodyDeclarationContext _localctx = new InterfaceBodyDeclarationContext(_ctx, getState()); enterRule(_localctx, 52, RULE_interfaceBodyDeclaration); try { int _alt; setState(495); _errHandler.sync(this); switch (_input.LA(1)) { case ABSTRACT: case BOOLEAN: case BYTE: case CHAR: case CLASS: case DEFAULT: case DOUBLE: case ENUM: case FINAL: case FLOAT: case INT: case INTERFACE: case LONG: case NATIVE: case PRIVATE: case PROTECTED: case PUBLIC: case SHORT: case STATIC: case STRICTFP: case SYNCHRONIZED: case TRANSIENT: case VOID: case VOLATILE: case LT: case Identifier: case AT: enterOuterAlt(_localctx, 1); { setState(490); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,44,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(487); modifier(); } } } setState(492); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,44,_ctx); } setState(493); interfaceMemberDeclaration(); } break; case SEMI: enterOuterAlt(_localctx, 2); { setState(494); match(SEMI); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InterfaceMemberDeclarationContext extends ParserRuleContext { public ConstDeclarationContext constDeclaration() { return getRuleContext(ConstDeclarationContext.class,0); } public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { return getRuleContext(InterfaceMethodDeclarationContext.class,0); } public GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() { return getRuleContext(GenericInterfaceMethodDeclarationContext.class,0); } public InterfaceDeclarationContext interfaceDeclaration() { return getRuleContext(InterfaceDeclarationContext.class,0); } public AnnotationTypeDeclarationContext annotationTypeDeclaration() { return getRuleContext(AnnotationTypeDeclarationContext.class,0); } public ClassDeclarationContext classDeclaration() { return getRuleContext(ClassDeclarationContext.class,0); } public EnumDeclarationContext enumDeclaration() { return getRuleContext(EnumDeclarationContext.class,0); } public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceMemberDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceMemberDeclaration(this); } } public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); enterRule(_localctx, 54, RULE_interfaceMemberDeclaration); try { setState(504); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,46,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(497); constDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(498); interfaceMethodDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(499); genericInterfaceMethodDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { setState(500); interfaceDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { setState(501); annotationTypeDeclaration(); } break; case 6: enterOuterAlt(_localctx, 6); { setState(502); classDeclaration(); } break; case 7: enterOuterAlt(_localctx, 7); { setState(503); enumDeclaration(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ConstDeclarationContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public List<ConstantDeclaratorContext> constantDeclarator() { return getRuleContexts(ConstantDeclaratorContext.class); } public ConstantDeclaratorContext constantDeclarator(int i) { return getRuleContext(ConstantDeclaratorContext.class,i); } public ConstDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstDeclaration(this); } } public final ConstDeclarationContext constDeclaration() throws RecognitionException { ConstDeclarationContext _localctx = new ConstDeclarationContext(_ctx, getState()); enterRule(_localctx, 56, RULE_constDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(506); typeType(); setState(507); constantDeclarator(); setState(512); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(508); match(COMMA); setState(509); constantDeclarator(); } } setState(514); _errHandler.sync(this); _la = _input.LA(1); } setState(515); match(SEMI); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ConstantDeclaratorContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public VariableInitializerContext variableInitializer() { return getRuleContext(VariableInitializerContext.class,0); } public ConstantDeclaratorContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantDeclarator; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstantDeclarator(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstantDeclarator(this); } } public final ConstantDeclaratorContext constantDeclarator() throws RecognitionException { ConstantDeclaratorContext _localctx = new ConstantDeclaratorContext(_ctx, getState()); enterRule(_localctx, 58, RULE_constantDeclarator); int _la; try { enterOuterAlt(_localctx, 1); { setState(517); match(Identifier); setState(522); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { setState(518); match(LBRACK); setState(519); match(RBRACK); } } setState(524); _errHandler.sync(this); _la = _input.LA(1); } setState(525); match(ASSIGN); setState(526); variableInitializer(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InterfaceMethodDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public FormalParametersContext formalParameters() { return getRuleContext(FormalParametersContext.class,0); } public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public MethodBodyContext methodBody() { return getRuleContext(MethodBodyContext.class,0); } public QualifiedNameListContext qualifiedNameList() { return getRuleContext(QualifiedNameListContext.class,0); } public InterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceMethodDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceMethodDeclaration(this); } } public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); enterRule(_localctx, 60, RULE_interfaceMethodDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(530); _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: case Identifier: { setState(528); typeType(); } break; case VOID: { setState(529); match(VOID); } break; default: throw new NoViableAltException(this); } setState(532); match(Identifier); setState(533); formalParameters(); setState(538); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { setState(534); match(LBRACK); setState(535); match(RBRACK); } } setState(540); _errHandler.sync(this); _la = _input.LA(1); } setState(543); _errHandler.sync(this); _la = _input.LA(1); if (_la==THROWS) { { setState(541); match(THROWS); setState(542); qualifiedNameList(); } } setState(547); _errHandler.sync(this); switch (_input.LA(1)) { case LBRACE: { setState(545); methodBody(); } break; case SEMI: { setState(546); match(SEMI); } break; default: throw new NoViableAltException(this); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class GenericInterfaceMethodDeclarationContext extends ParserRuleContext { public TypeParametersContext typeParameters() { return getRuleContext(TypeParametersContext.class,0); } public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { return getRuleContext(InterfaceMethodDeclarationContext.class,0); } public GenericInterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_genericInterfaceMethodDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericInterfaceMethodDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericInterfaceMethodDeclaration(this); } } public final GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() throws RecognitionException { GenericInterfaceMethodDeclarationContext _localctx = new GenericInterfaceMethodDeclarationContext(_ctx, getState()); enterRule(_localctx, 62, RULE_genericInterfaceMethodDeclaration); try { enterOuterAlt(_localctx, 1); { setState(549); typeParameters(); setState(550); interfaceMethodDeclaration(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class VariableDeclaratorsContext extends ParserRuleContext { public List<VariableDeclaratorContext> variableDeclarator() { return getRuleContexts(VariableDeclaratorContext.class); } public VariableDeclaratorContext variableDeclarator(int i) { return getRuleContext(VariableDeclaratorContext.class,i); } public VariableDeclaratorsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclarators; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclarators(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclarators(this); } } public final VariableDeclaratorsContext variableDeclarators() throws RecognitionException { VariableDeclaratorsContext _localctx = new VariableDeclaratorsContext(_ctx, getState()); enterRule(_localctx, 64, RULE_variableDeclarators); int _la; try { enterOuterAlt(_localctx, 1); { setState(552); variableDeclarator(); setState(557); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(553); match(COMMA); setState(554); variableDeclarator(); } } setState(559); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class VariableDeclaratorContext extends ParserRuleContext { public VariableDeclaratorIdContext variableDeclaratorId() { return getRuleContext(VariableDeclaratorIdContext.class,0); } public VariableInitializerContext variableInitializer() { return getRuleContext(VariableInitializerContext.class,0); } public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclarator; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclarator(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclarator(this); } } public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); enterRule(_localctx, 66, RULE_variableDeclarator); int _la; try { enterOuterAlt(_localctx, 1); { setState(560); variableDeclaratorId(); setState(563); _errHandler.sync(this); _la = _input.LA(1); if (_la==ASSIGN) { { setState(561); match(ASSIGN); setState(562); variableInitializer(); } } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class VariableDeclaratorIdContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclaratorId(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclaratorId(this); } } public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); enterRule(_localctx, 68, RULE_variableDeclaratorId); int _la; try { enterOuterAlt(_localctx, 1); { setState(565); match(Identifier); setState(570); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { setState(566); match(LBRACK); setState(567); match(RBRACK); } } setState(572); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class VariableInitializerContext extends ParserRuleContext { public ArrayInitializerContext arrayInitializer() { return getRuleContext(ArrayInitializerContext.class,0); } public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public VariableInitializerContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableInitializer; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableInitializer(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableInitializer(this); } } public final VariableInitializerContext variableInitializer() throws RecognitionException { VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); enterRule(_localctx, 70, RULE_variableInitializer); try { setState(575); _errHandler.sync(this); switch (_input.LA(1)) { case LBRACE: enterOuterAlt(_localctx, 1); { setState(573); arrayInitializer(); } break; case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case NEW: case SHORT: case SUPER: case THIS: case VOID: case IntegerLiteral: case FloatingPointLiteral: case BooleanLiteral: case CharacterLiteral: case StringLiteral: case NullLiteral: case LPAREN: case LT: case BANG: case TILDE: case INC: case DEC: case ADD: case SUB: case Identifier: case AT: enterOuterAlt(_localctx, 2); { setState(574); expression(0); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ArrayInitializerContext extends ParserRuleContext { public List<VariableInitializerContext> variableInitializer() { return getRuleContexts(VariableInitializerContext.class); } public VariableInitializerContext variableInitializer(int i) { return getRuleContext(VariableInitializerContext.class,i); } public ArrayInitializerContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayInitializer; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArrayInitializer(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArrayInitializer(this); } } public final ArrayInitializerContext arrayInitializer() throws RecognitionException { ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); enterRule(_localctx, 72, RULE_arrayInitializer); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(577); match(LBRACE); setState(589); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(578); variableInitializer(); setState(583); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,57,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(579); match(COMMA); setState(580); variableInitializer(); } } } setState(585); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,57,_ctx); } setState(587); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { setState(586); match(COMMA); } } } } setState(591); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnumConstantNameContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public EnumConstantNameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantName; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstantName(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstantName(this); } } public final EnumConstantNameContext enumConstantName() throws RecognitionException { EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); enterRule(_localctx, 74, RULE_enumConstantName); try { enterOuterAlt(_localctx, 1); { setState(593); match(Identifier); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeTypeContext extends ParserRuleContext { public ClassOrInterfaceTypeContext classOrInterfaceType() { return getRuleContext(ClassOrInterfaceTypeContext.class,0); } public PrimitiveTypeContext primitiveType() { return getRuleContext(PrimitiveTypeContext.class,0); } public TypeTypeContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeType; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeType(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeType(this); } } public final TypeTypeContext typeType() throws RecognitionException { TypeTypeContext _localctx = new TypeTypeContext(_ctx, getState()); enterRule(_localctx, 76, RULE_typeType); try { int _alt; setState(611); _errHandler.sync(this); switch (_input.LA(1)) { case Identifier: enterOuterAlt(_localctx, 1); { setState(595); classOrInterfaceType(); setState(600); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,60,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(596); match(LBRACK); setState(597); match(RBRACK); } } } setState(602); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,60,_ctx); } } break; case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: enterOuterAlt(_localctx, 2); { setState(603); primitiveType(); setState(608); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,61,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(604); match(LBRACK); setState(605); match(RBRACK); } } } setState(610); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,61,_ctx); } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassOrInterfaceTypeContext extends ParserRuleContext { public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); } public TerminalNode Identifier(int i) { return getToken(JavaParser.Identifier, i); } public List<TypeArgumentsContext> typeArguments() { return getRuleContexts(TypeArgumentsContext.class); } public TypeArgumentsContext typeArguments(int i) { return getRuleContext(TypeArgumentsContext.class,i); } public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassOrInterfaceType(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassOrInterfaceType(this); } } public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); enterRule(_localctx, 78, RULE_classOrInterfaceType); try { int _alt; enterOuterAlt(_localctx, 1); { setState(613); match(Identifier); setState(615); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { case 1: { setState(614); typeArguments(); } break; } setState(624); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,65,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(617); match(DOT); setState(618); match(Identifier); setState(620); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { case 1: { setState(619); typeArguments(); } break; } } } } setState(626); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,65,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class PrimitiveTypeContext extends ParserRuleContext { public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primitiveType; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPrimitiveType(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPrimitiveType(this); } } public final PrimitiveTypeContext primitiveType() throws RecognitionException { PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); enterRule(_localctx, 80, RULE_primitiveType); int _la; try { enterOuterAlt(_localctx, 1); { setState(627); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeArgumentsContext extends ParserRuleContext { public List<TypeArgumentContext> typeArgument() { return getRuleContexts(TypeArgumentContext.class); } public TypeArgumentContext typeArgument(int i) { return getRuleContext(TypeArgumentContext.class,i); } public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArguments; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArguments(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArguments(this); } } public final TypeArgumentsContext typeArguments() throws RecognitionException { TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); enterRule(_localctx, 82, RULE_typeArguments); int _la; try { enterOuterAlt(_localctx, 1); { setState(629); match(LT); setState(630); typeArgument(); setState(635); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(631); match(COMMA); setState(632); typeArgument(); } } setState(637); _errHandler.sync(this); _la = _input.LA(1); } setState(638); match(GT); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeArgumentContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public TypeArgumentContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgument; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArgument(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArgument(this); } } public final TypeArgumentContext typeArgument() throws RecognitionException { TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); enterRule(_localctx, 84, RULE_typeArgument); int _la; try { setState(646); _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: case Identifier: enterOuterAlt(_localctx, 1); { setState(640); typeType(); } break; case QUESTION: enterOuterAlt(_localctx, 2); { setState(641); match(QUESTION); setState(644); _errHandler.sync(this); _la = _input.LA(1); if (_la==EXTENDS || _la==SUPER) { { setState(642); _la = _input.LA(1); if ( !(_la==EXTENDS || _la==SUPER) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(643); typeType(); } } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class QualifiedNameListContext extends ParserRuleContext { public List<QualifiedNameContext> qualifiedName() { return getRuleContexts(QualifiedNameContext.class); } public QualifiedNameContext qualifiedName(int i) { return getRuleContext(QualifiedNameContext.class,i); } public QualifiedNameListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_qualifiedNameList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterQualifiedNameList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitQualifiedNameList(this); } } public final QualifiedNameListContext qualifiedNameList() throws RecognitionException { QualifiedNameListContext _localctx = new QualifiedNameListContext(_ctx, getState()); enterRule(_localctx, 86, RULE_qualifiedNameList); int _la; try { enterOuterAlt(_localctx, 1); { setState(648); qualifiedName(); setState(653); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(649); match(COMMA); setState(650); qualifiedName(); } } setState(655); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class FormalParametersContext extends ParserRuleContext { public FormalParameterListContext formalParameterList() { return getRuleContext(FormalParameterListContext.class,0); } public FormalParametersContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameters; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameters(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameters(this); } } public final FormalParametersContext formalParameters() throws RecognitionException { FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); enterRule(_localctx, 88, RULE_formalParameters); int _la; try { enterOuterAlt(_localctx, 1); { setState(656); match(LPAREN); setState(658); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { setState(657); formalParameterList(); } } setState(660); match(RPAREN); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class FormalParameterListContext extends ParserRuleContext { public List<FormalParameterContext> formalParameter() { return getRuleContexts(FormalParameterContext.class); } public FormalParameterContext formalParameter(int i) { return getRuleContext(FormalParameterContext.class,i); } public LastFormalParameterContext lastFormalParameter() { return getRuleContext(LastFormalParameterContext.class,0); } public FormalParameterListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameterList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameterList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameterList(this); } } public final FormalParameterListContext formalParameterList() throws RecognitionException { FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); enterRule(_localctx, 90, RULE_formalParameterList); int _la; try { int _alt; setState(675); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(662); formalParameter(); setState(667); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,71,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(663); match(COMMA); setState(664); formalParameter(); } } } setState(669); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,71,_ctx); } setState(672); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { setState(670); match(COMMA); setState(671); lastFormalParameter(); } } } break; case 2: enterOuterAlt(_localctx, 2); { setState(674); lastFormalParameter(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class FormalParameterContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public VariableDeclaratorIdContext variableDeclaratorId() { return getRuleContext(VariableDeclaratorIdContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public FormalParameterContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameter; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameter(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameter(this); } } public final FormalParameterContext formalParameter() throws RecognitionException { FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); enterRule(_localctx, 92, RULE_formalParameter); int _la; try { enterOuterAlt(_localctx, 1); { setState(680); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(677); variableModifier(); } } setState(682); _errHandler.sync(this); _la = _input.LA(1); } setState(683); typeType(); setState(684); variableDeclaratorId(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LastFormalParameterContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public VariableDeclaratorIdContext variableDeclaratorId() { return getRuleContext(VariableDeclaratorIdContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public LastFormalParameterContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lastFormalParameter; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLastFormalParameter(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLastFormalParameter(this); } } public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); enterRule(_localctx, 94, RULE_lastFormalParameter); int _la; try { enterOuterAlt(_localctx, 1); { setState(689); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(686); variableModifier(); } } setState(691); _errHandler.sync(this); _la = _input.LA(1); } setState(692); typeType(); setState(693); match(ELLIPSIS); setState(694); variableDeclaratorId(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class MethodBodyContext extends ParserRuleContext { public BlockContext block() { return getRuleContext(BlockContext.class,0); } public MethodBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMethodBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMethodBody(this); } } public final MethodBodyContext methodBody() throws RecognitionException { MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); enterRule(_localctx, 96, RULE_methodBody); try { enterOuterAlt(_localctx, 1); { setState(696); block(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ConstructorBodyContext extends ParserRuleContext { public BlockContext block() { return getRuleContext(BlockContext.class,0); } public ConstructorBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstructorBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstructorBody(this); } } public final ConstructorBodyContext constructorBody() throws RecognitionException { ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); enterRule(_localctx, 98, RULE_constructorBody); try { enterOuterAlt(_localctx, 1); { setState(698); block(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class QualifiedNameContext extends ParserRuleContext { public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); } public TerminalNode Identifier(int i) { return getToken(JavaParser.Identifier, i); } public QualifiedNameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_qualifiedName; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterQualifiedName(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitQualifiedName(this); } } public final QualifiedNameContext qualifiedName() throws RecognitionException { QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState()); enterRule(_localctx, 100, RULE_qualifiedName); try { int _alt; enterOuterAlt(_localctx, 1); { setState(700); match(Identifier); setState(705); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,76,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(701); match(DOT); setState(702); match(Identifier); } } } setState(707); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,76,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LiteralContext extends ParserRuleContext { public TerminalNode IntegerLiteral() { return getToken(JavaParser.IntegerLiteral, 0); } public TerminalNode FloatingPointLiteral() { return getToken(JavaParser.FloatingPointLiteral, 0); } public TerminalNode CharacterLiteral() { return getToken(JavaParser.CharacterLiteral, 0); } public TerminalNode StringLiteral() { return getToken(JavaParser.StringLiteral, 0); } public TerminalNode BooleanLiteral() { return getToken(JavaParser.BooleanLiteral, 0); } public LiteralContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_literal; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLiteral(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLiteral(this); } } public final LiteralContext literal() throws RecognitionException { LiteralContext _localctx = new LiteralContext(_ctx, getState()); enterRule(_localctx, 102, RULE_literal); int _la; try { enterOuterAlt(_localctx, 1); { setState(708); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationContext extends ParserRuleContext { public AnnotationNameContext annotationName() { return getRuleContext(AnnotationNameContext.class,0); } public ElementValuePairsContext elementValuePairs() { return getRuleContext(ElementValuePairsContext.class,0); } public ElementValueContext elementValue() { return getRuleContext(ElementValueContext.class,0); } public AnnotationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotation; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotation(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotation(this); } } public final AnnotationContext annotation() throws RecognitionException { AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); enterRule(_localctx, 104, RULE_annotation); int _la; try { enterOuterAlt(_localctx, 1); { setState(710); match(AT); setState(711); annotationName(); setState(718); _errHandler.sync(this); _la = _input.LA(1); if (_la==LPAREN) { { setState(712); match(LPAREN); setState(715); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,77,_ctx) ) { case 1: { setState(713); elementValuePairs(); } break; case 2: { setState(714); elementValue(); } break; } setState(717); match(RPAREN); } } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationNameContext extends ParserRuleContext { public QualifiedNameContext qualifiedName() { return getRuleContext(QualifiedNameContext.class,0); } public AnnotationNameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationName; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationName(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationName(this); } } public final AnnotationNameContext annotationName() throws RecognitionException { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, getState()); enterRule(_localctx, 106, RULE_annotationName); try { enterOuterAlt(_localctx, 1); { setState(720); qualifiedName(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ElementValuePairsContext extends ParserRuleContext { public List<ElementValuePairContext> elementValuePair() { return getRuleContexts(ElementValuePairContext.class); } public ElementValuePairContext elementValuePair(int i) { return getRuleContext(ElementValuePairContext.class,i); } public ElementValuePairsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePairs; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValuePairs(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValuePairs(this); } } public final ElementValuePairsContext elementValuePairs() throws RecognitionException { ElementValuePairsContext _localctx = new ElementValuePairsContext(_ctx, getState()); enterRule(_localctx, 108, RULE_elementValuePairs); int _la; try { enterOuterAlt(_localctx, 1); { setState(722); elementValuePair(); setState(727); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(723); match(COMMA); setState(724); elementValuePair(); } } setState(729); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ElementValuePairContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public ElementValueContext elementValue() { return getRuleContext(ElementValueContext.class,0); } public ElementValuePairContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePair; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValuePair(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValuePair(this); } } public final ElementValuePairContext elementValuePair() throws RecognitionException { ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); enterRule(_localctx, 110, RULE_elementValuePair); try { enterOuterAlt(_localctx, 1); { setState(730); match(Identifier); setState(731); match(ASSIGN); setState(732); elementValue(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ElementValueContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public AnnotationContext annotation() { return getRuleContext(AnnotationContext.class,0); } public ElementValueArrayInitializerContext elementValueArrayInitializer() { return getRuleContext(ElementValueArrayInitializerContext.class,0); } public ElementValueContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValue; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValue(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValue(this); } } public final ElementValueContext elementValue() throws RecognitionException { ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); enterRule(_localctx, 112, RULE_elementValue); try { setState(737); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(734); expression(0); } break; case 2: enterOuterAlt(_localctx, 2); { setState(735); annotation(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(736); elementValueArrayInitializer(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ElementValueArrayInitializerContext extends ParserRuleContext { public List<ElementValueContext> elementValue() { return getRuleContexts(ElementValueContext.class); } public ElementValueContext elementValue(int i) { return getRuleContext(ElementValueContext.class,i); } public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValueArrayInitializer(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValueArrayInitializer(this); } } public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); enterRule(_localctx, 114, RULE_elementValueArrayInitializer); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(739); match(LBRACE); setState(748); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(740); elementValue(); setState(745); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,81,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(741); match(COMMA); setState(742); elementValue(); } } } setState(747); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,81,_ctx); } } } setState(751); _errHandler.sync(this); _la = _input.LA(1); if (_la==COMMA) { { setState(750); match(COMMA); } } setState(753); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationTypeDeclarationContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public AnnotationTypeBodyContext annotationTypeBody() { return getRuleContext(AnnotationTypeBodyContext.class,0); } public AnnotationTypeDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeDeclaration(this); } } public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); enterRule(_localctx, 116, RULE_annotationTypeDeclaration); try { enterOuterAlt(_localctx, 1); { setState(755); match(AT); setState(756); match(INTERFACE); setState(757); match(Identifier); setState(758); annotationTypeBody(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationTypeBodyContext extends ParserRuleContext { public List<AnnotationTypeElementDeclarationContext> annotationTypeElementDeclaration() { return getRuleContexts(AnnotationTypeElementDeclarationContext.class); } public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration(int i) { return getRuleContext(AnnotationTypeElementDeclarationContext.class,i); } public AnnotationTypeBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeBody(this); } } public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); enterRule(_localctx, 118, RULE_annotationTypeBody); int _la; try { enterOuterAlt(_localctx, 1); { setState(760); match(LBRACE); setState(764); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (SEMI - 65)) | (1L << (Identifier - 65)) | (1L << (AT - 65)))) != 0)) { { { setState(761); annotationTypeElementDeclaration(); } } setState(766); _errHandler.sync(this); _la = _input.LA(1); } setState(767); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { public AnnotationTypeElementRestContext annotationTypeElementRest() { return getRuleContext(AnnotationTypeElementRestContext.class,0); } public List<ModifierContext> modifier() { return getRuleContexts(ModifierContext.class); } public ModifierContext modifier(int i) { return getRuleContext(ModifierContext.class,i); } public AnnotationTypeElementDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeElementDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeElementDeclaration(this); } } public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); enterRule(_localctx, 120, RULE_annotationTypeElementDeclaration); try { int _alt; setState(777); _errHandler.sync(this); switch (_input.LA(1)) { case ABSTRACT: case BOOLEAN: case BYTE: case CHAR: case CLASS: case DEFAULT: case DOUBLE: case ENUM: case FINAL: case FLOAT: case INT: case INTERFACE: case LONG: case NATIVE: case PRIVATE: case PROTECTED: case PUBLIC: case SHORT: case STATIC: case STRICTFP: case SYNCHRONIZED: case TRANSIENT: case VOLATILE: case Identifier: case AT: enterOuterAlt(_localctx, 1); { setState(772); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,85,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(769); modifier(); } } } setState(774); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,85,_ctx); } setState(775); annotationTypeElementRest(); } break; case SEMI: enterOuterAlt(_localctx, 2); { setState(776); match(SEMI); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationTypeElementRestContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() { return getRuleContext(AnnotationMethodOrConstantRestContext.class,0); } public ClassDeclarationContext classDeclaration() { return getRuleContext(ClassDeclarationContext.class,0); } public InterfaceDeclarationContext interfaceDeclaration() { return getRuleContext(InterfaceDeclarationContext.class,0); } public EnumDeclarationContext enumDeclaration() { return getRuleContext(EnumDeclarationContext.class,0); } public AnnotationTypeDeclarationContext annotationTypeDeclaration() { return getRuleContext(AnnotationTypeDeclarationContext.class,0); } public AnnotationTypeElementRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeElementRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeElementRest(this); } } public final AnnotationTypeElementRestContext annotationTypeElementRest() throws RecognitionException { AnnotationTypeElementRestContext _localctx = new AnnotationTypeElementRestContext(_ctx, getState()); enterRule(_localctx, 122, RULE_annotationTypeElementRest); try { setState(799); _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: case Identifier: enterOuterAlt(_localctx, 1); { setState(779); typeType(); setState(780); annotationMethodOrConstantRest(); setState(781); match(SEMI); } break; case CLASS: enterOuterAlt(_localctx, 2); { setState(783); classDeclaration(); setState(785); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { case 1: { setState(784); match(SEMI); } break; } } break; case INTERFACE: enterOuterAlt(_localctx, 3); { setState(787); interfaceDeclaration(); setState(789); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) { case 1: { setState(788); match(SEMI); } break; } } break; case ENUM: enterOuterAlt(_localctx, 4); { setState(791); enumDeclaration(); setState(793); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { case 1: { setState(792); match(SEMI); } break; } } break; case AT: enterOuterAlt(_localctx, 5); { setState(795); annotationTypeDeclaration(); setState(797); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { case 1: { setState(796); match(SEMI); } break; } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationMethodOrConstantRestContext extends ParserRuleContext { public AnnotationMethodRestContext annotationMethodRest() { return getRuleContext(AnnotationMethodRestContext.class,0); } public AnnotationConstantRestContext annotationConstantRest() { return getRuleContext(AnnotationConstantRestContext.class,0); } public AnnotationMethodOrConstantRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationMethodOrConstantRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationMethodOrConstantRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationMethodOrConstantRest(this); } } public final AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() throws RecognitionException { AnnotationMethodOrConstantRestContext _localctx = new AnnotationMethodOrConstantRestContext(_ctx, getState()); enterRule(_localctx, 124, RULE_annotationMethodOrConstantRest); try { setState(803); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,92,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(801); annotationMethodRest(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(802); annotationConstantRest(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationMethodRestContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public DefaultValueContext defaultValue() { return getRuleContext(DefaultValueContext.class,0); } public AnnotationMethodRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationMethodRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationMethodRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationMethodRest(this); } } public final AnnotationMethodRestContext annotationMethodRest() throws RecognitionException { AnnotationMethodRestContext _localctx = new AnnotationMethodRestContext(_ctx, getState()); enterRule(_localctx, 126, RULE_annotationMethodRest); int _la; try { enterOuterAlt(_localctx, 1); { setState(805); match(Identifier); setState(806); match(LPAREN); setState(807); match(RPAREN); setState(809); _errHandler.sync(this); _la = _input.LA(1); if (_la==DEFAULT) { { setState(808); defaultValue(); } } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class AnnotationConstantRestContext extends ParserRuleContext { public VariableDeclaratorsContext variableDeclarators() { return getRuleContext(VariableDeclaratorsContext.class,0); } public AnnotationConstantRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationConstantRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationConstantRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationConstantRest(this); } } public final AnnotationConstantRestContext annotationConstantRest() throws RecognitionException { AnnotationConstantRestContext _localctx = new AnnotationConstantRestContext(_ctx, getState()); enterRule(_localctx, 128, RULE_annotationConstantRest); try { enterOuterAlt(_localctx, 1); { setState(811); variableDeclarators(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class DefaultValueContext extends ParserRuleContext { public ElementValueContext elementValue() { return getRuleContext(ElementValueContext.class,0); } public DefaultValueContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_defaultValue; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterDefaultValue(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitDefaultValue(this); } } public final DefaultValueContext defaultValue() throws RecognitionException { DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); enterRule(_localctx, 130, RULE_defaultValue); try { enterOuterAlt(_localctx, 1); { setState(813); match(DEFAULT); setState(814); elementValue(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class BlockContext extends ParserRuleContext { public List<BlockStatementContext> blockStatement() { return getRuleContexts(BlockStatementContext.class); } public BlockStatementContext blockStatement(int i) { return getRuleContext(BlockStatementContext.class,i); } public BlockContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_block; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterBlock(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitBlock(this); } } public final BlockContext block() throws RecognitionException { BlockContext _localctx = new BlockContext(_ctx, getState()); enterRule(_localctx, 132, RULE_block); int _la; try { enterOuterAlt(_localctx, 1); { setState(816); match(LBRACE); setState(820); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DEFAULT) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (SEMI - 65)) | (1L << (LT - 65)) | (1L << (BANG - 65)) | (1L << (TILDE - 65)) | (1L << (INC - 65)) | (1L << (DEC - 65)) | (1L << (ADD - 65)) | (1L << (SUB - 65)) | (1L << (Identifier - 65)) | (1L << (AT - 65)))) != 0)) { { { setState(817); blockStatement(); } } setState(822); _errHandler.sync(this); _la = _input.LA(1); } setState(823); match(RBRACE); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class BlockStatementContext extends ParserRuleContext { public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() { return getRuleContext(LocalVariableDeclarationStatementContext.class,0); } public StatementContext statement() { return getRuleContext(StatementContext.class,0); } public TypeDeclarationContext typeDeclaration() { return getRuleContext(TypeDeclarationContext.class,0); } public BlockStatementContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_blockStatement; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterBlockStatement(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitBlockStatement(this); } } public final BlockStatementContext blockStatement() throws RecognitionException { BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); enterRule(_localctx, 134, RULE_blockStatement); try { setState(828); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,95,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(825); localVariableDeclarationStatement(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(826); statement(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(827); typeDeclaration(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LocalVariableDeclarationStatementContext extends ParserRuleContext { public LocalVariableDeclarationContext localVariableDeclaration() { return getRuleContext(LocalVariableDeclarationContext.class,0); } public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLocalVariableDeclarationStatement(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLocalVariableDeclarationStatement(this); } } public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); enterRule(_localctx, 136, RULE_localVariableDeclarationStatement); try { enterOuterAlt(_localctx, 1); { setState(830); localVariableDeclaration(); setState(831); match(SEMI); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LocalVariableDeclarationContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public VariableDeclaratorsContext variableDeclarators() { return getRuleContext(VariableDeclaratorsContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public LocalVariableDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLocalVariableDeclaration(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLocalVariableDeclaration(this); } } public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); enterRule(_localctx, 138, RULE_localVariableDeclaration); int _la; try { enterOuterAlt(_localctx, 1); { setState(836); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(833); variableModifier(); } } setState(838); _errHandler.sync(this); _la = _input.LA(1); } setState(839); typeType(); setState(840); variableDeclarators(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class StatementContext extends ParserRuleContext { public BlockContext block() { return getRuleContext(BlockContext.class,0); } public TerminalNode ASSERT() { return getToken(JavaParser.ASSERT, 0); } public List<ExpressionContext> expression() { return getRuleContexts(ExpressionContext.class); } public ExpressionContext expression(int i) { return getRuleContext(ExpressionContext.class,i); } public ParExpressionContext parExpression() { return getRuleContext(ParExpressionContext.class,0); } public List<StatementContext> statement() { return getRuleContexts(StatementContext.class); } public StatementContext statement(int i) { return getRuleContext(StatementContext.class,i); } public ForControlContext forControl() { return getRuleContext(ForControlContext.class,0); } public FinallyBlockContext finallyBlock() { return getRuleContext(FinallyBlockContext.class,0); } public List<CatchClauseContext> catchClause() { return getRuleContexts(CatchClauseContext.class); } public CatchClauseContext catchClause(int i) { return getRuleContext(CatchClauseContext.class,i); } public ResourceSpecificationContext resourceSpecification() { return getRuleContext(ResourceSpecificationContext.class,0); } public List<SwitchBlockStatementGroupContext> switchBlockStatementGroup() { return getRuleContexts(SwitchBlockStatementGroupContext.class); } public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) { return getRuleContext(SwitchBlockStatementGroupContext.class,i); } public List<SwitchLabelContext> switchLabel() { return getRuleContexts(SwitchLabelContext.class); } public SwitchLabelContext switchLabel(int i) { return getRuleContext(SwitchLabelContext.class,i); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public StatementExpressionContext statementExpression() { return getRuleContext(StatementExpressionContext.class,0); } public StatementContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statement; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterStatement(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitStatement(this); } } public final StatementContext statement() throws RecognitionException { StatementContext _localctx = new StatementContext(_ctx, getState()); enterRule(_localctx, 140, RULE_statement); int _la; try { int _alt; setState(946); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,109,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(842); block(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(843); match(ASSERT); setState(844); expression(0); setState(847); _errHandler.sync(this); _la = _input.LA(1); if (_la==COLON) { { setState(845); match(COLON); setState(846); expression(0); } } setState(849); match(SEMI); } break; case 3: enterOuterAlt(_localctx, 3); { setState(851); match(IF); setState(852); parExpression(); setState(853); statement(); setState(856); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,98,_ctx) ) { case 1: { setState(854); match(ELSE); setState(855); statement(); } break; } } break; case 4: enterOuterAlt(_localctx, 4); { setState(858); match(FOR); setState(859); match(LPAREN); setState(860); forControl(); setState(861); match(RPAREN); setState(862); statement(); } break; case 5: enterOuterAlt(_localctx, 5); { setState(864); match(WHILE); setState(865); parExpression(); setState(866); statement(); } break; case 6: enterOuterAlt(_localctx, 6); { setState(868); match(DO); setState(869); statement(); setState(870); match(WHILE); setState(871); parExpression(); setState(872); match(SEMI); } break; case 7: enterOuterAlt(_localctx, 7); { setState(874); match(TRY); setState(875); block(); setState(885); _errHandler.sync(this); switch (_input.LA(1)) { case CATCH: { setState(877); _errHandler.sync(this); _la = _input.LA(1); do { { { setState(876); catchClause(); } } setState(879); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==CATCH ); setState(882); _errHandler.sync(this); _la = _input.LA(1); if (_la==FINALLY) { { setState(881); finallyBlock(); } } } break; case FINALLY: { setState(884); finallyBlock(); } break; default: throw new NoViableAltException(this); } } break; case 8: enterOuterAlt(_localctx, 8); { setState(887); match(TRY); setState(888); resourceSpecification(); setState(889); block(); setState(893); _errHandler.sync(this); _la = _input.LA(1); while (_la==CATCH) { { { setState(890); catchClause(); } } setState(895); _errHandler.sync(this); _la = _input.LA(1); } setState(897); _errHandler.sync(this); _la = _input.LA(1); if (_la==FINALLY) { { setState(896); finallyBlock(); } } } break; case 9: enterOuterAlt(_localctx, 9); { setState(899); match(SWITCH); setState(900); parExpression(); setState(901); match(LBRACE); setState(905); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,104,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(902); switchBlockStatementGroup(); } } } setState(907); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,104,_ctx); } setState(911); _errHandler.sync(this); _la = _input.LA(1); while (_la==CASE || _la==DEFAULT) { { { setState(908); switchLabel(); } } setState(913); _errHandler.sync(this); _la = _input.LA(1); } setState(914); match(RBRACE); } break; case 10: enterOuterAlt(_localctx, 10); { setState(916); match(SYNCHRONIZED); setState(917); parExpression(); setState(918); block(); } break; case 11: enterOuterAlt(_localctx, 11); { setState(920); match(RETURN); setState(922); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(921); expression(0); } } setState(924); match(SEMI); } break; case 12: enterOuterAlt(_localctx, 12); { setState(925); match(THROW); setState(926); expression(0); setState(927); match(SEMI); } break; case 13: enterOuterAlt(_localctx, 13); { setState(929); match(BREAK); setState(931); _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { setState(930); match(Identifier); } } setState(933); match(SEMI); } break; case 14: enterOuterAlt(_localctx, 14); { setState(934); match(CONTINUE); setState(936); _errHandler.sync(this); _la = _input.LA(1); if (_la==Identifier) { { setState(935); match(Identifier); } } setState(938); match(SEMI); } break; case 15: enterOuterAlt(_localctx, 15); { setState(939); match(SEMI); } break; case 16: enterOuterAlt(_localctx, 16); { setState(940); statementExpression(); setState(941); match(SEMI); } break; case 17: enterOuterAlt(_localctx, 17); { setState(943); match(Identifier); setState(944); match(COLON); setState(945); statement(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class CatchClauseContext extends ParserRuleContext { public CatchTypeContext catchType() { return getRuleContext(CatchTypeContext.class,0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public BlockContext block() { return getRuleContext(BlockContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public CatchClauseContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchClause; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCatchClause(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCatchClause(this); } } public final CatchClauseContext catchClause() throws RecognitionException { CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); enterRule(_localctx, 142, RULE_catchClause); int _la; try { enterOuterAlt(_localctx, 1); { setState(948); match(CATCH); setState(949); match(LPAREN); setState(953); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(950); variableModifier(); } } setState(955); _errHandler.sync(this); _la = _input.LA(1); } setState(956); catchType(); setState(957); match(Identifier); setState(958); match(RPAREN); setState(959); block(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class CatchTypeContext extends ParserRuleContext { public List<QualifiedNameContext> qualifiedName() { return getRuleContexts(QualifiedNameContext.class); } public QualifiedNameContext qualifiedName(int i) { return getRuleContext(QualifiedNameContext.class,i); } public CatchTypeContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchType; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCatchType(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCatchType(this); } } public final CatchTypeContext catchType() throws RecognitionException { CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); enterRule(_localctx, 144, RULE_catchType); int _la; try { enterOuterAlt(_localctx, 1); { setState(961); qualifiedName(); setState(966); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITOR) { { { setState(962); match(BITOR); setState(963); qualifiedName(); } } setState(968); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class FinallyBlockContext extends ParserRuleContext { public BlockContext block() { return getRuleContext(BlockContext.class,0); } public FinallyBlockContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_finallyBlock; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFinallyBlock(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFinallyBlock(this); } } public final FinallyBlockContext finallyBlock() throws RecognitionException { FinallyBlockContext _localctx = new FinallyBlockContext(_ctx, getState()); enterRule(_localctx, 146, RULE_finallyBlock); try { enterOuterAlt(_localctx, 1); { setState(969); match(FINALLY); setState(970); block(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ResourceSpecificationContext extends ParserRuleContext { public ResourcesContext resources() { return getRuleContext(ResourcesContext.class,0); } public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resourceSpecification; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResourceSpecification(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResourceSpecification(this); } } public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); enterRule(_localctx, 148, RULE_resourceSpecification); int _la; try { enterOuterAlt(_localctx, 1); { setState(972); match(LPAREN); setState(973); resources(); setState(975); _errHandler.sync(this); _la = _input.LA(1); if (_la==SEMI) { { setState(974); match(SEMI); } } setState(977); match(RPAREN); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ResourcesContext extends ParserRuleContext { public List<ResourceContext> resource() { return getRuleContexts(ResourceContext.class); } public ResourceContext resource(int i) { return getRuleContext(ResourceContext.class,i); } public ResourcesContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resources; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResources(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResources(this); } } public final ResourcesContext resources() throws RecognitionException { ResourcesContext _localctx = new ResourcesContext(_ctx, getState()); enterRule(_localctx, 150, RULE_resources); try { int _alt; enterOuterAlt(_localctx, 1); { setState(979); resource(); setState(984); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,113,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(980); match(SEMI); setState(981); resource(); } } } setState(986); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,113,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ResourceContext extends ParserRuleContext { public ClassOrInterfaceTypeContext classOrInterfaceType() { return getRuleContext(ClassOrInterfaceTypeContext.class,0); } public VariableDeclaratorIdContext variableDeclaratorId() { return getRuleContext(VariableDeclaratorIdContext.class,0); } public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public ResourceContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resource; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResource(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResource(this); } } public final ResourceContext resource() throws RecognitionException { ResourceContext _localctx = new ResourceContext(_ctx, getState()); enterRule(_localctx, 152, RULE_resource); int _la; try { enterOuterAlt(_localctx, 1); { setState(990); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(987); variableModifier(); } } setState(992); _errHandler.sync(this); _la = _input.LA(1); } setState(993); classOrInterfaceType(); setState(994); variableDeclaratorId(); setState(995); match(ASSIGN); setState(996); expression(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class SwitchBlockStatementGroupContext extends ParserRuleContext { public List<SwitchLabelContext> switchLabel() { return getRuleContexts(SwitchLabelContext.class); } public SwitchLabelContext switchLabel(int i) { return getRuleContext(SwitchLabelContext.class,i); } public List<BlockStatementContext> blockStatement() { return getRuleContexts(BlockStatementContext.class); } public BlockStatementContext blockStatement(int i) { return getRuleContext(BlockStatementContext.class,i); } public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSwitchBlockStatementGroup(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSwitchBlockStatementGroup(this); } } public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); enterRule(_localctx, 154, RULE_switchBlockStatementGroup); try { int _alt; enterOuterAlt(_localctx, 1); { setState(999); _errHandler.sync(this); _alt = 1; do { switch (_alt) { case 1: { { setState(998); switchLabel(); } } break; default: throw new NoViableAltException(this); } setState(1001); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,115,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); setState(1004); _errHandler.sync(this); _alt = 1; do { switch (_alt) { case 1: { { setState(1003); blockStatement(); } } break; default: throw new NoViableAltException(this); } setState(1006); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,116,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class SwitchLabelContext extends ParserRuleContext { public ConstantExpressionContext constantExpression() { return getRuleContext(ConstantExpressionContext.class,0); } public EnumConstantNameContext enumConstantName() { return getRuleContext(EnumConstantNameContext.class,0); } public SwitchLabelContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchLabel; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSwitchLabel(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSwitchLabel(this); } } public final SwitchLabelContext switchLabel() throws RecognitionException { SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); enterRule(_localctx, 156, RULE_switchLabel); try { setState(1018); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1008); match(CASE); setState(1009); constantExpression(); setState(1010); match(COLON); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1012); match(CASE); setState(1013); enumConstantName(); setState(1014); match(COLON); } break; case 3: enterOuterAlt(_localctx, 3); { setState(1016); match(DEFAULT); setState(1017); match(COLON); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ForControlContext extends ParserRuleContext { public EnhancedForControlContext enhancedForControl() { return getRuleContext(EnhancedForControlContext.class,0); } public ForInitContext forInit() { return getRuleContext(ForInitContext.class,0); } public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public ForUpdateContext forUpdate() { return getRuleContext(ForUpdateContext.class,0); } public ForControlContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forControl; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForControl(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForControl(this); } } public final ForControlContext forControl() throws RecognitionException { ForControlContext _localctx = new ForControlContext(_ctx, getState()); enterRule(_localctx, 158, RULE_forControl); int _la; try { setState(1032); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,121,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1020); enhancedForControl(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1022); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(1021); forInit(); } } setState(1024); match(SEMI); setState(1026); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(1025); expression(0); } } setState(1028); match(SEMI); setState(1030); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(1029); forUpdate(); } } } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ForInitContext extends ParserRuleContext { public LocalVariableDeclarationContext localVariableDeclaration() { return getRuleContext(LocalVariableDeclarationContext.class,0); } public ExpressionListContext expressionList() { return getRuleContext(ExpressionListContext.class,0); } public ForInitContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forInit; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForInit(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForInit(this); } } public final ForInitContext forInit() throws RecognitionException { ForInitContext _localctx = new ForInitContext(_ctx, getState()); enterRule(_localctx, 160, RULE_forInit); try { setState(1036); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1034); localVariableDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1035); expressionList(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class EnhancedForControlContext extends ParserRuleContext { public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public VariableDeclaratorIdContext variableDeclaratorId() { return getRuleContext(VariableDeclaratorIdContext.class,0); } public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public List<VariableModifierContext> variableModifier() { return getRuleContexts(VariableModifierContext.class); } public VariableModifierContext variableModifier(int i) { return getRuleContext(VariableModifierContext.class,i); } public EnhancedForControlContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enhancedForControl; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnhancedForControl(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnhancedForControl(this); } } public final EnhancedForControlContext enhancedForControl() throws RecognitionException { EnhancedForControlContext _localctx = new EnhancedForControlContext(_ctx, getState()); enterRule(_localctx, 162, RULE_enhancedForControl); int _la; try { enterOuterAlt(_localctx, 1); { setState(1041); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { setState(1038); variableModifier(); } } setState(1043); _errHandler.sync(this); _la = _input.LA(1); } setState(1044); typeType(); setState(1045); variableDeclaratorId(); setState(1046); match(COLON); setState(1047); expression(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ForUpdateContext extends ParserRuleContext { public ExpressionListContext expressionList() { return getRuleContext(ExpressionListContext.class,0); } public ForUpdateContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forUpdate; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForUpdate(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForUpdate(this); } } public final ForUpdateContext forUpdate() throws RecognitionException { ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); enterRule(_localctx, 164, RULE_forUpdate); try { enterOuterAlt(_localctx, 1); { setState(1049); expressionList(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ParExpressionContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public ParExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_parExpression; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterParExpression(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitParExpression(this); } } public final ParExpressionContext parExpression() throws RecognitionException { ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState()); enterRule(_localctx, 166, RULE_parExpression); try { enterOuterAlt(_localctx, 1); { setState(1051); match(LPAREN); setState(1052); expression(0); setState(1053); match(RPAREN); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ExpressionListContext extends ParserRuleContext { public List<ExpressionContext> expression() { return getRuleContexts(ExpressionContext.class); } public ExpressionContext expression(int i) { return getRuleContext(ExpressionContext.class,i); } public ExpressionListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expressionList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExpressionList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExpressionList(this); } } public final ExpressionListContext expressionList() throws RecognitionException { ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState()); enterRule(_localctx, 168, RULE_expressionList); int _la; try { enterOuterAlt(_localctx, 1); { setState(1055); expression(0); setState(1060); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(1056); match(COMMA); setState(1057); expression(0); } } setState(1062); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class StatementExpressionContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public StatementExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementExpression; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterStatementExpression(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitStatementExpression(this); } } public final StatementExpressionContext statementExpression() throws RecognitionException { StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); enterRule(_localctx, 170, RULE_statementExpression); try { enterOuterAlt(_localctx, 1); { setState(1063); expression(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ConstantExpressionContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public ConstantExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantExpression; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstantExpression(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstantExpression(this); } } public final ConstantExpressionContext constantExpression() throws RecognitionException { ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); enterRule(_localctx, 172, RULE_constantExpression); try { enterOuterAlt(_localctx, 1); { setState(1065); expression(0); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ExpressionContext extends ParserRuleContext { public PrimaryContext primary() { return getRuleContext(PrimaryContext.class,0); } public LambdaExpressionContext lambdaExpression() { return getRuleContext(LambdaExpressionContext.class,0); } public CreatorContext creator() { return getRuleContext(CreatorContext.class,0); } public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public List<ExpressionContext> expression() { return getRuleContexts(ExpressionContext.class); } public ExpressionContext expression(int i) { return getRuleContext(ExpressionContext.class,i); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public InnerCreatorContext innerCreator() { return getRuleContext(InnerCreatorContext.class,0); } public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { return getRuleContext(NonWildcardTypeArgumentsContext.class,0); } public SuperSuffixContext superSuffix() { return getRuleContext(SuperSuffixContext.class,0); } public ExplicitGenericInvocationContext explicitGenericInvocation() { return getRuleContext(ExplicitGenericInvocationContext.class,0); } public ExpressionListContext expressionList() { return getRuleContext(ExpressionListContext.class,0); } public TypeArgumentsContext typeArguments() { return getRuleContext(TypeArgumentsContext.class,0); } public ExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expression; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExpression(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExpression(this); } } public final ExpressionContext expression() throws RecognitionException { return expression(0); } private ExpressionContext expression(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); ExpressionContext _prevctx = _localctx; int _startState = 174; enterRecursionRule(_localctx, 174, RULE_expression, _p); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(1081); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) { case 1: { setState(1068); primary(); } break; case 2: { setState(1069); lambdaExpression(); } break; case 3: { setState(1070); match(NEW); setState(1071); creator(); } break; case 4: { setState(1072); match(LPAREN); setState(1073); typeType(); setState(1074); match(RPAREN); setState(1075); expression(20); } break; case 5: { setState(1077); _la = _input.LA(1); if ( !(((((_la - 81)) & ~0x3f) == 0 && ((1L << (_la - 81)) & ((1L << (INC - 81)) | (1L << (DEC - 81)) | (1L << (ADD - 81)) | (1L << (SUB - 81)))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1078); expression(18); } break; case 6: { setState(1079); _la = _input.LA(1); if ( !(_la==BANG || _la==TILDE) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1080); expression(17); } break; } _ctx.stop = _input.LT(-1); setState(1180); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,131,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(1178); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) { case 1: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1083); if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)"); setState(1084); _la = _input.LA(1); if ( !(((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (MUL - 85)) | (1L << (DIV - 85)) | (1L << (MOD - 85)))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1085); expression(17); } break; case 2: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1086); if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)"); setState(1087); _la = _input.LA(1); if ( !(_la==ADD || _la==SUB) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1088); expression(16); } break; case 3: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1089); if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); setState(1097); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { case 1: { setState(1090); match(LT); setState(1091); match(LT); } break; case 2: { setState(1092); match(GT); setState(1093); match(GT); setState(1094); match(GT); } break; case 3: { setState(1095); match(GT); setState(1096); match(GT); } break; } setState(1099); expression(15); } break; case 4: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1100); if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); setState(1101); _la = _input.LA(1); if ( !(((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (GT - 69)) | (1L << (LT - 69)) | (1L << (LE - 69)) | (1L << (GE - 69)))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1102); expression(14); } break; case 5: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1103); if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); setState(1104); _la = _input.LA(1); if ( !(_la==EQUAL || _la==NOTEQUAL) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1105); expression(12); } break; case 6: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1106); if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); setState(1107); match(BITAND); setState(1108); expression(11); } break; case 7: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1109); if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); setState(1110); match(CARET); setState(1111); expression(10); } break; case 8: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1112); if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); setState(1113); match(BITOR); setState(1114); expression(9); } break; case 9: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1115); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); setState(1116); match(AND); setState(1117); expression(8); } break; case 10: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1118); if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); setState(1119); match(OR); setState(1120); expression(7); } break; case 11: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1121); if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); setState(1122); match(T__0); setState(1123); expression(6); } break; case 12: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1124); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); setState(1125); match(QUESTION); setState(1126); expression(0); setState(1127); match(COLON); setState(1128); expression(3); } break; case 13: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1130); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); setState(1131); _la = _input.LA(1); if ( !(((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ASSIGN - 68)) | (1L << (ADD_ASSIGN - 68)) | (1L << (SUB_ASSIGN - 68)) | (1L << (MUL_ASSIGN - 68)) | (1L << (DIV_ASSIGN - 68)) | (1L << (AND_ASSIGN - 68)) | (1L << (OR_ASSIGN - 68)) | (1L << (XOR_ASSIGN - 68)) | (1L << (MOD_ASSIGN - 68)) | (1L << (LSHIFT_ASSIGN - 68)) | (1L << (RSHIFT_ASSIGN - 68)) | (1L << (URSHIFT_ASSIGN - 68)))) != 0)) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } setState(1132); expression(1); } break; case 14: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1133); if (!(precpred(_ctx, 28))) throw new FailedPredicateException(this, "precpred(_ctx, 28)"); setState(1134); match(DOT); setState(1135); match(Identifier); } break; case 15: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1136); if (!(precpred(_ctx, 27))) throw new FailedPredicateException(this, "precpred(_ctx, 27)"); setState(1137); match(DOT); setState(1138); match(THIS); } break; case 16: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1139); if (!(precpred(_ctx, 26))) throw new FailedPredicateException(this, "precpred(_ctx, 26)"); setState(1140); match(DOT); setState(1141); match(NEW); setState(1143); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(1142); nonWildcardTypeArguments(); } } setState(1145); innerCreator(); } break; case 17: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1146); if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); setState(1147); match(DOT); setState(1148); match(SUPER); setState(1149); superSuffix(); } break; case 18: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1150); if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); setState(1151); match(DOT); setState(1152); explicitGenericInvocation(); } break; case 19: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1153); if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)"); setState(1154); match(LBRACK); setState(1155); expression(0); setState(1156); match(RBRACK); } break; case 20: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1158); if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); setState(1159); match(LPAREN); setState(1161); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(1160); expressionList(); } } setState(1163); match(RPAREN); } break; case 21: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1164); if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); setState(1165); _la = _input.LA(1); if ( !(_la==INC || _la==DEC) ) { _errHandler.recoverInline(this); } else { if ( _input.LA(1)==Token.EOF ) matchedEOF = true; _errHandler.reportMatch(this); consume(); } } break; case 22: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1166); if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); setState(1167); match(INSTANCEOF); setState(1168); typeType(); } break; case 23: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1169); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); setState(1170); match(T__0); setState(1172); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(1171); typeArguments(); } } setState(1174); match(NEW); } break; case 24: { _localctx = new ExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expression); setState(1175); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); setState(1176); match(T__0); setState(1177); match(NEW); } break; } } } setState(1182); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,131,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } public static class PrimaryContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public LiteralContext literal() { return getRuleContext(LiteralContext.class,0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public ArrayTypeContext arrayType() { return getRuleContext(ArrayTypeContext.class,0); } public TypeTypeContext typeType() { return getRuleContext(TypeTypeContext.class,0); } public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { return getRuleContext(NonWildcardTypeArgumentsContext.class,0); } public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); } public ArgumentsContext arguments() { return getRuleContext(ArgumentsContext.class,0); } public PrimaryContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primary; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPrimary(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPrimary(this); } } public final PrimaryContext primary() throws RecognitionException { PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); enterRule(_localctx, 176, RULE_primary); try { setState(1205); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1183); match(LPAREN); setState(1184); expression(0); setState(1185); match(RPAREN); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1187); match(THIS); } break; case 3: enterOuterAlt(_localctx, 3); { setState(1188); match(SUPER); } break; case 4: enterOuterAlt(_localctx, 4); { setState(1189); literal(); } break; case 5: enterOuterAlt(_localctx, 5); { setState(1190); match(Identifier); } break; case 6: enterOuterAlt(_localctx, 6); { setState(1191); arrayType(); } break; case 7: enterOuterAlt(_localctx, 7); { setState(1192); typeType(); setState(1193); match(DOT); setState(1194); match(CLASS); } break; case 8: enterOuterAlt(_localctx, 8); { setState(1196); match(VOID); setState(1197); match(DOT); setState(1198); match(CLASS); } break; case 9: enterOuterAlt(_localctx, 9); { setState(1199); nonWildcardTypeArguments(); setState(1203); _errHandler.sync(this); switch (_input.LA(1)) { case SUPER: case Identifier: { setState(1200); explicitGenericInvocationSuffix(); } break; case THIS: { setState(1201); match(THIS); setState(1202); arguments(); } break; default: throw new NoViableAltException(this); } } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ArrayTypeContext extends ParserRuleContext { public PrimitiveTypeContext primitiveType() { return getRuleContext(PrimitiveTypeContext.class,0); } public DimsContext dims() { return getRuleContext(DimsContext.class,0); } public ClassOrInterfaceTypeContext classOrInterfaceType() { return getRuleContext(ClassOrInterfaceTypeContext.class,0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public List<AnnotationContext> annotation() { return getRuleContexts(AnnotationContext.class); } public AnnotationContext annotation(int i) { return getRuleContext(AnnotationContext.class,i); } public ArrayTypeContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayType; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArrayType(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArrayType(this); } } public final ArrayTypeContext arrayType() throws RecognitionException { ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); enterRule(_localctx, 178, RULE_arrayType); int _la; try { setState(1221); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1207); primitiveType(); setState(1208); dims(); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1210); classOrInterfaceType(); setState(1211); dims(); } break; case 3: enterOuterAlt(_localctx, 3); { setState(1216); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(1213); annotation(); } } setState(1218); _errHandler.sync(this); _la = _input.LA(1); } setState(1219); match(Identifier); setState(1220); dims(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class DimsContext extends ParserRuleContext { public List<AnnotationContext> annotation() { return getRuleContexts(AnnotationContext.class); } public AnnotationContext annotation(int i) { return getRuleContext(AnnotationContext.class,i); } public DimsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dims; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterDims(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitDims(this); } } public final DimsContext dims() throws RecognitionException { DimsContext _localctx = new DimsContext(_ctx, getState()); enterRule(_localctx, 180, RULE_dims); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(1226); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(1223); annotation(); } } setState(1228); _errHandler.sync(this); _la = _input.LA(1); } setState(1229); match(LBRACK); setState(1230); match(RBRACK); setState(1241); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,138,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(1234); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { setState(1231); annotation(); } } setState(1236); _errHandler.sync(this); _la = _input.LA(1); } setState(1237); match(LBRACK); setState(1238); match(RBRACK); } } } setState(1243); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,138,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LambdaExpressionContext extends ParserRuleContext { public LambdaParametersContext lambdaParameters() { return getRuleContext(LambdaParametersContext.class,0); } public LambdaBodyContext lambdaBody() { return getRuleContext(LambdaBodyContext.class,0); } public LambdaExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaExpression; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLambdaExpression(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLambdaExpression(this); } } public final LambdaExpressionContext lambdaExpression() throws RecognitionException { LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); enterRule(_localctx, 182, RULE_lambdaExpression); try { enterOuterAlt(_localctx, 1); { setState(1244); lambdaParameters(); setState(1245); match(T__1); setState(1246); lambdaBody(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LambdaParametersContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public FormalParameterListContext formalParameterList() { return getRuleContext(FormalParameterListContext.class,0); } public InferredFormalParameterListContext inferredFormalParameterList() { return getRuleContext(InferredFormalParameterListContext.class,0); } public LambdaParametersContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaParameters; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLambdaParameters(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLambdaParameters(this); } } public final LambdaParametersContext lambdaParameters() throws RecognitionException { LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); enterRule(_localctx, 184, RULE_lambdaParameters); int _la; try { setState(1258); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1248); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1249); match(LPAREN); setState(1251); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { setState(1250); formalParameterList(); } } setState(1253); match(RPAREN); } break; case 3: enterOuterAlt(_localctx, 3); { setState(1254); match(LPAREN); setState(1255); inferredFormalParameterList(); setState(1256); match(RPAREN); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InferredFormalParameterListContext extends ParserRuleContext { public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); } public TerminalNode Identifier(int i) { return getToken(JavaParser.Identifier, i); } public InferredFormalParameterListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_inferredFormalParameterList; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInferredFormalParameterList(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInferredFormalParameterList(this); } } public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState()); enterRule(_localctx, 186, RULE_inferredFormalParameterList); int _la; try { enterOuterAlt(_localctx, 1); { setState(1260); match(Identifier); setState(1265); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { setState(1261); match(COMMA); setState(1262); match(Identifier); } } setState(1267); _errHandler.sync(this); _la = _input.LA(1); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class LambdaBodyContext extends ParserRuleContext { public ExpressionContext expression() { return getRuleContext(ExpressionContext.class,0); } public BlockContext block() { return getRuleContext(BlockContext.class,0); } public LambdaBodyContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaBody; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLambdaBody(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLambdaBody(this); } } public final LambdaBodyContext lambdaBody() throws RecognitionException { LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); enterRule(_localctx, 188, RULE_lambdaBody); try { setState(1270); _errHandler.sync(this); switch (_input.LA(1)) { case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case NEW: case SHORT: case SUPER: case THIS: case VOID: case IntegerLiteral: case FloatingPointLiteral: case BooleanLiteral: case CharacterLiteral: case StringLiteral: case NullLiteral: case LPAREN: case LT: case BANG: case TILDE: case INC: case DEC: case ADD: case SUB: case Identifier: case AT: enterOuterAlt(_localctx, 1); { setState(1268); expression(0); } break; case LBRACE: enterOuterAlt(_localctx, 2); { setState(1269); block(); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class CreatorContext extends ParserRuleContext { public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { return getRuleContext(NonWildcardTypeArgumentsContext.class,0); } public CreatedNameContext createdName() { return getRuleContext(CreatedNameContext.class,0); } public ClassCreatorRestContext classCreatorRest() { return getRuleContext(ClassCreatorRestContext.class,0); } public ArrayCreatorRestContext arrayCreatorRest() { return getRuleContext(ArrayCreatorRestContext.class,0); } public CreatorContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_creator; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCreator(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCreator(this); } } public final CreatorContext creator() throws RecognitionException { CreatorContext _localctx = new CreatorContext(_ctx, getState()); enterRule(_localctx, 190, RULE_creator); try { setState(1281); _errHandler.sync(this); switch (_input.LA(1)) { case LT: enterOuterAlt(_localctx, 1); { setState(1272); nonWildcardTypeArguments(); setState(1273); createdName(); setState(1274); classCreatorRest(); } break; case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: case Identifier: enterOuterAlt(_localctx, 2); { setState(1276); createdName(); setState(1279); _errHandler.sync(this); switch (_input.LA(1)) { case LBRACK: { setState(1277); arrayCreatorRest(); } break; case LPAREN: { setState(1278); classCreatorRest(); } break; default: throw new NoViableAltException(this); } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class CreatedNameContext extends ParserRuleContext { public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); } public TerminalNode Identifier(int i) { return getToken(JavaParser.Identifier, i); } public List<TypeArgumentsOrDiamondContext> typeArgumentsOrDiamond() { return getRuleContexts(TypeArgumentsOrDiamondContext.class); } public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond(int i) { return getRuleContext(TypeArgumentsOrDiamondContext.class,i); } public PrimitiveTypeContext primitiveType() { return getRuleContext(PrimitiveTypeContext.class,0); } public CreatedNameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_createdName; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCreatedName(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCreatedName(this); } } public final CreatedNameContext createdName() throws RecognitionException { CreatedNameContext _localctx = new CreatedNameContext(_ctx, getState()); enterRule(_localctx, 192, RULE_createdName); int _la; try { setState(1298); _errHandler.sync(this); switch (_input.LA(1)) { case Identifier: enterOuterAlt(_localctx, 1); { setState(1283); match(Identifier); setState(1285); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(1284); typeArgumentsOrDiamond(); } } setState(1294); _errHandler.sync(this); _la = _input.LA(1); while (_la==DOT) { { { setState(1287); match(DOT); setState(1288); match(Identifier); setState(1290); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(1289); typeArgumentsOrDiamond(); } } } } setState(1296); _errHandler.sync(this); _la = _input.LA(1); } } break; case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case SHORT: enterOuterAlt(_localctx, 2); { setState(1297); primitiveType(); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class InnerCreatorContext extends ParserRuleContext { public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public ClassCreatorRestContext classCreatorRest() { return getRuleContext(ClassCreatorRestContext.class,0); } public NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() { return getRuleContext(NonWildcardTypeArgumentsOrDiamondContext.class,0); } public InnerCreatorContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_innerCreator; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInnerCreator(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInnerCreator(this); } } public final InnerCreatorContext innerCreator() throws RecognitionException { InnerCreatorContext _localctx = new InnerCreatorContext(_ctx, getState()); enterRule(_localctx, 194, RULE_innerCreator); int _la; try { enterOuterAlt(_localctx, 1); { setState(1300); match(Identifier); setState(1302); _errHandler.sync(this); _la = _input.LA(1); if (_la==LT) { { setState(1301); nonWildcardTypeArgumentsOrDiamond(); } } setState(1304); classCreatorRest(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ArrayCreatorRestContext extends ParserRuleContext { public ArrayInitializerContext arrayInitializer() { return getRuleContext(ArrayInitializerContext.class,0); } public List<ExpressionContext> expression() { return getRuleContexts(ExpressionContext.class); } public ExpressionContext expression(int i) { return getRuleContext(ExpressionContext.class,i); } public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayCreatorRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArrayCreatorRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArrayCreatorRest(this); } } public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException { ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState()); enterRule(_localctx, 196, RULE_arrayCreatorRest); int _la; try { int _alt; enterOuterAlt(_localctx, 1); { setState(1306); match(LBRACK); setState(1334); _errHandler.sync(this); switch (_input.LA(1)) { case RBRACK: { setState(1307); match(RBRACK); setState(1312); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { setState(1308); match(LBRACK); setState(1309); match(RBRACK); } } setState(1314); _errHandler.sync(this); _la = _input.LA(1); } setState(1315); arrayInitializer(); } break; case BOOLEAN: case BYTE: case CHAR: case DOUBLE: case FLOAT: case INT: case LONG: case NEW: case SHORT: case SUPER: case THIS: case VOID: case IntegerLiteral: case FloatingPointLiteral: case BooleanLiteral: case CharacterLiteral: case StringLiteral: case NullLiteral: case LPAREN: case LT: case BANG: case TILDE: case INC: case DEC: case ADD: case SUB: case Identifier: case AT: { setState(1316); expression(0); setState(1317); match(RBRACK); setState(1324); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,151,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(1318); match(LBRACK); setState(1319); expression(0); setState(1320); match(RBRACK); } } } setState(1326); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,151,_ctx); } setState(1331); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,152,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { setState(1327); match(LBRACK); setState(1328); match(RBRACK); } } } setState(1333); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,152,_ctx); } } break; default: throw new NoViableAltException(this); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ClassCreatorRestContext extends ParserRuleContext { public ArgumentsContext arguments() { return getRuleContext(ArgumentsContext.class,0); } public ClassBodyContext classBody() { return getRuleContext(ClassBodyContext.class,0); } public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classCreatorRest; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassCreatorRest(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassCreatorRest(this); } } public final ClassCreatorRestContext classCreatorRest() throws RecognitionException { ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState()); enterRule(_localctx, 198, RULE_classCreatorRest); try { enterOuterAlt(_localctx, 1); { setState(1336); arguments(); setState(1338); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,154,_ctx) ) { case 1: { setState(1337); classBody(); } break; } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ExplicitGenericInvocationContext extends ParserRuleContext { public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { return getRuleContext(NonWildcardTypeArgumentsContext.class,0); } public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); } public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_explicitGenericInvocation; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExplicitGenericInvocation(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExplicitGenericInvocation(this); } } public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException { ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState()); enterRule(_localctx, 200, RULE_explicitGenericInvocation); try { enterOuterAlt(_localctx, 1); { setState(1340); nonWildcardTypeArguments(); setState(1341); explicitGenericInvocationSuffix(); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class NonWildcardTypeArgumentsContext extends ParserRuleContext { public TypeListContext typeList() { return getRuleContext(TypeListContext.class,0); } public NonWildcardTypeArgumentsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_nonWildcardTypeArguments; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterNonWildcardTypeArguments(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitNonWildcardTypeArguments(this); } } public final NonWildcardTypeArgumentsContext nonWildcardTypeArguments() throws RecognitionException { NonWildcardTypeArgumentsContext _localctx = new NonWildcardTypeArgumentsContext(_ctx, getState()); enterRule(_localctx, 202, RULE_nonWildcardTypeArguments); try { enterOuterAlt(_localctx, 1); { setState(1343); match(LT); setState(1344); typeList(); setState(1345); match(GT); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { public TypeArgumentsContext typeArguments() { return getRuleContext(TypeArgumentsContext.class,0); } public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArgumentsOrDiamond(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArgumentsOrDiamond(this); } } public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); enterRule(_localctx, 204, RULE_typeArgumentsOrDiamond); try { setState(1350); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,155,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1347); match(LT); setState(1348); match(GT); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1349); typeArguments(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class NonWildcardTypeArgumentsOrDiamondContext extends ParserRuleContext { public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { return getRuleContext(NonWildcardTypeArgumentsContext.class,0); } public NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_nonWildcardTypeArgumentsOrDiamond; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterNonWildcardTypeArgumentsOrDiamond(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitNonWildcardTypeArgumentsOrDiamond(this); } } public final NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() throws RecognitionException { NonWildcardTypeArgumentsOrDiamondContext _localctx = new NonWildcardTypeArgumentsOrDiamondContext(_ctx, getState()); enterRule(_localctx, 206, RULE_nonWildcardTypeArgumentsOrDiamond); try { setState(1355); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { setState(1352); match(LT); setState(1353); match(GT); } break; case 2: enterOuterAlt(_localctx, 2); { setState(1354); nonWildcardTypeArguments(); } break; } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class SuperSuffixContext extends ParserRuleContext { public ArgumentsContext arguments() { return getRuleContext(ArgumentsContext.class,0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public SuperSuffixContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_superSuffix; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSuperSuffix(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSuperSuffix(this); } } public final SuperSuffixContext superSuffix() throws RecognitionException { SuperSuffixContext _localctx = new SuperSuffixContext(_ctx, getState()); enterRule(_localctx, 208, RULE_superSuffix); try { setState(1363); _errHandler.sync(this); switch (_input.LA(1)) { case LPAREN: enterOuterAlt(_localctx, 1); { setState(1357); arguments(); } break; case DOT: enterOuterAlt(_localctx, 2); { setState(1358); match(DOT); setState(1359); match(Identifier); setState(1361); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,157,_ctx) ) { case 1: { setState(1360); arguments(); } break; } } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext { public SuperSuffixContext superSuffix() { return getRuleContext(SuperSuffixContext.class,0); } public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); } public ArgumentsContext arguments() { return getRuleContext(ArgumentsContext.class,0); } public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExplicitGenericInvocationSuffix(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExplicitGenericInvocationSuffix(this); } } public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException { ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState()); enterRule(_localctx, 210, RULE_explicitGenericInvocationSuffix); try { setState(1369); _errHandler.sync(this); switch (_input.LA(1)) { case SUPER: enterOuterAlt(_localctx, 1); { setState(1365); match(SUPER); setState(1366); superSuffix(); } break; case Identifier: enterOuterAlt(_localctx, 2); { setState(1367); match(Identifier); setState(1368); arguments(); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ArgumentsContext extends ParserRuleContext { public ExpressionListContext expressionList() { return getRuleContext(ExpressionListContext.class,0); } public ArgumentsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arguments; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArguments(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArguments(this); } } public final ArgumentsContext arguments() throws RecognitionException { ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState()); enterRule(_localctx, 212, RULE_arguments); int _la; try { enterOuterAlt(_localctx, 1); { setState(1371); match(LPAREN); setState(1373); _errHandler.sync(this); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (LT - 70)) | (1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { { setState(1372); expressionList(); } } setState(1375); match(RPAREN); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } @Override public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { case 87: return expression_sempred((ExpressionContext)_localctx, predIndex); } return true; } private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { switch (predIndex) { case 0: return precpred(_ctx, 16); case 1: return precpred(_ctx, 15); case 2: return precpred(_ctx, 14); case 3: return precpred(_ctx, 13); case 4: return precpred(_ctx, 11); case 5: return precpred(_ctx, 10); case 6: return precpred(_ctx, 9); case 7: return precpred(_ctx, 8); case 8: return precpred(_ctx, 7); case 9: return precpred(_ctx, 6); case 10: return precpred(_ctx, 5); case 11: return precpred(_ctx, 2); case 12: return precpred(_ctx, 1); case 13: return precpred(_ctx, 28); case 14: return precpred(_ctx, 27); case 15: return precpred(_ctx, 26); case 16: return precpred(_ctx, 25); case 17: return precpred(_ctx, 24); case 18: return precpred(_ctx, 23); case 19: return precpred(_ctx, 22); case 20: return precpred(_ctx, 19); case 21: return precpred(_ctx, 12); case 22: return precpred(_ctx, 4); case 23: return precpred(_ctx, 3); } return true; } public static final String _serializedATN = "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3m\u0564\4\2\t\2\4"+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ "k\4l\tl\3\2\5\2\u00da\n\2\3\2\7\2\u00dd\n\2\f\2\16\2\u00e0\13\2\3\2\7"+ "\2\u00e3\n\2\f\2\16\2\u00e6\13\2\3\2\3\2\3\3\7\3\u00eb\n\3\f\3\16\3\u00ee"+ "\13\3\3\3\3\3\3\3\3\3\3\4\3\4\5\4\u00f6\n\4\3\4\3\4\3\4\5\4\u00fb\n\4"+ "\3\4\3\4\3\5\7\5\u0100\n\5\f\5\16\5\u0103\13\5\3\5\3\5\7\5\u0107\n\5\f"+ "\5\16\5\u010a\13\5\3\5\3\5\7\5\u010e\n\5\f\5\16\5\u0111\13\5\3\5\3\5\7"+ "\5\u0115\n\5\f\5\16\5\u0118\13\5\3\5\3\5\5\5\u011c\n\5\3\6\3\6\5\6\u0120"+ "\n\6\3\7\3\7\5\7\u0124\n\7\3\b\3\b\5\b\u0128\n\b\3\t\3\t\3\t\5\t\u012d"+ "\n\t\3\t\3\t\5\t\u0131\n\t\3\t\3\t\5\t\u0135\n\t\3\t\3\t\3\n\3\n\3\n\3"+ "\n\7\n\u013d\n\n\f\n\16\n\u0140\13\n\3\n\3\n\3\13\7\13\u0145\n\13\f\13"+ "\16\13\u0148\13\13\3\13\3\13\3\13\5\13\u014d\n\13\3\f\3\f\3\f\7\f\u0152"+ "\n\f\f\f\16\f\u0155\13\f\3\r\3\r\3\r\3\r\5\r\u015b\n\r\3\r\3\r\5\r\u015f"+ "\n\r\3\r\5\r\u0162\n\r\3\r\5\r\u0165\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u016c"+ "\n\16\f\16\16\16\u016f\13\16\3\17\7\17\u0172\n\17\f\17\16\17\u0175\13"+ "\17\3\17\3\17\5\17\u0179\n\17\3\17\5\17\u017c\n\17\3\20\3\20\7\20\u0180"+ "\n\20\f\20\16\20\u0183\13\20\3\21\3\21\3\21\5\21\u0188\n\21\3\21\3\21"+ "\5\21\u018c\n\21\3\21\3\21\3\22\3\22\3\22\7\22\u0193\n\22\f\22\16\22\u0196"+ "\13\22\3\23\3\23\7\23\u019a\n\23\f\23\16\23\u019d\13\23\3\23\3\23\3\24"+ "\3\24\7\24\u01a3\n\24\f\24\16\24\u01a6\13\24\3\24\3\24\3\25\3\25\5\25"+ "\u01ac\n\25\3\25\3\25\7\25\u01b0\n\25\f\25\16\25\u01b3\13\25\3\25\5\25"+ "\u01b6\n\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u01c1\n"+ "\26\3\27\3\27\5\27\u01c5\n\27\3\27\3\27\3\27\3\27\7\27\u01cb\n\27\f\27"+ "\16\27\u01ce\13\27\3\27\3\27\5\27\u01d2\n\27\3\27\3\27\5\27\u01d6\n\27"+ "\3\30\3\30\3\30\3\31\3\31\3\31\3\31\5\31\u01df\n\31\3\31\3\31\3\32\3\32"+ "\3\32\3\33\3\33\3\33\3\33\3\34\7\34\u01eb\n\34\f\34\16\34\u01ee\13\34"+ "\3\34\3\34\5\34\u01f2\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u01fb"+ "\n\35\3\36\3\36\3\36\3\36\7\36\u0201\n\36\f\36\16\36\u0204\13\36\3\36"+ "\3\36\3\37\3\37\3\37\7\37\u020b\n\37\f\37\16\37\u020e\13\37\3\37\3\37"+ "\3\37\3 \3 \5 \u0215\n \3 \3 \3 \3 \7 \u021b\n \f \16 \u021e\13 \3 \3"+ " \5 \u0222\n \3 \3 \5 \u0226\n \3!\3!\3!\3\"\3\"\3\"\7\"\u022e\n\"\f\""+ "\16\"\u0231\13\"\3#\3#\3#\5#\u0236\n#\3$\3$\3$\7$\u023b\n$\f$\16$\u023e"+ "\13$\3%\3%\5%\u0242\n%\3&\3&\3&\3&\7&\u0248\n&\f&\16&\u024b\13&\3&\5&"+ "\u024e\n&\5&\u0250\n&\3&\3&\3\'\3\'\3(\3(\3(\7(\u0259\n(\f(\16(\u025c"+ "\13(\3(\3(\3(\7(\u0261\n(\f(\16(\u0264\13(\5(\u0266\n(\3)\3)\5)\u026a"+ "\n)\3)\3)\3)\5)\u026f\n)\7)\u0271\n)\f)\16)\u0274\13)\3*\3*\3+\3+\3+\3"+ "+\7+\u027c\n+\f+\16+\u027f\13+\3+\3+\3,\3,\3,\3,\5,\u0287\n,\5,\u0289"+ "\n,\3-\3-\3-\7-\u028e\n-\f-\16-\u0291\13-\3.\3.\5.\u0295\n.\3.\3.\3/\3"+ "/\3/\7/\u029c\n/\f/\16/\u029f\13/\3/\3/\5/\u02a3\n/\3/\5/\u02a6\n/\3\60"+ "\7\60\u02a9\n\60\f\60\16\60\u02ac\13\60\3\60\3\60\3\60\3\61\7\61\u02b2"+ "\n\61\f\61\16\61\u02b5\13\61\3\61\3\61\3\61\3\61\3\62\3\62\3\63\3\63\3"+ "\64\3\64\3\64\7\64\u02c2\n\64\f\64\16\64\u02c5\13\64\3\65\3\65\3\66\3"+ "\66\3\66\3\66\3\66\5\66\u02ce\n\66\3\66\5\66\u02d1\n\66\3\67\3\67\38\3"+ "8\38\78\u02d8\n8\f8\168\u02db\138\39\39\39\39\3:\3:\3:\5:\u02e4\n:\3;"+ "\3;\3;\3;\7;\u02ea\n;\f;\16;\u02ed\13;\5;\u02ef\n;\3;\5;\u02f2\n;\3;\3"+ ";\3<\3<\3<\3<\3<\3=\3=\7=\u02fd\n=\f=\16=\u0300\13=\3=\3=\3>\7>\u0305"+ "\n>\f>\16>\u0308\13>\3>\3>\5>\u030c\n>\3?\3?\3?\3?\3?\3?\5?\u0314\n?\3"+ "?\3?\5?\u0318\n?\3?\3?\5?\u031c\n?\3?\3?\5?\u0320\n?\5?\u0322\n?\3@\3"+ "@\5@\u0326\n@\3A\3A\3A\3A\5A\u032c\nA\3B\3B\3C\3C\3C\3D\3D\7D\u0335\n"+ "D\fD\16D\u0338\13D\3D\3D\3E\3E\3E\5E\u033f\nE\3F\3F\3F\3G\7G\u0345\nG"+ "\fG\16G\u0348\13G\3G\3G\3G\3H\3H\3H\3H\3H\5H\u0352\nH\3H\3H\3H\3H\3H\3"+ "H\3H\5H\u035b\nH\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3"+ "H\3H\6H\u0370\nH\rH\16H\u0371\3H\5H\u0375\nH\3H\5H\u0378\nH\3H\3H\3H\3"+ "H\7H\u037e\nH\fH\16H\u0381\13H\3H\5H\u0384\nH\3H\3H\3H\3H\7H\u038a\nH"+ "\fH\16H\u038d\13H\3H\7H\u0390\nH\fH\16H\u0393\13H\3H\3H\3H\3H\3H\3H\3"+ "H\3H\5H\u039d\nH\3H\3H\3H\3H\3H\3H\3H\5H\u03a6\nH\3H\3H\3H\5H\u03ab\n"+ "H\3H\3H\3H\3H\3H\3H\3H\3H\5H\u03b5\nH\3I\3I\3I\7I\u03ba\nI\fI\16I\u03bd"+ "\13I\3I\3I\3I\3I\3I\3J\3J\3J\7J\u03c7\nJ\fJ\16J\u03ca\13J\3K\3K\3K\3L"+ "\3L\3L\5L\u03d2\nL\3L\3L\3M\3M\3M\7M\u03d9\nM\fM\16M\u03dc\13M\3N\7N\u03df"+ "\nN\fN\16N\u03e2\13N\3N\3N\3N\3N\3N\3O\6O\u03ea\nO\rO\16O\u03eb\3O\6O"+ "\u03ef\nO\rO\16O\u03f0\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\5P\u03fd\nP\3Q\3"+ "Q\5Q\u0401\nQ\3Q\3Q\5Q\u0405\nQ\3Q\3Q\5Q\u0409\nQ\5Q\u040b\nQ\3R\3R\5"+ "R\u040f\nR\3S\7S\u0412\nS\fS\16S\u0415\13S\3S\3S\3S\3S\3S\3T\3T\3U\3U"+ "\3U\3U\3V\3V\3V\7V\u0425\nV\fV\16V\u0428\13V\3W\3W\3X\3X\3Y\3Y\3Y\3Y\3"+ "Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u043c\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3"+ "Y\3Y\3Y\3Y\3Y\5Y\u044c\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3"+ "Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3"+ "Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u047a\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3"+ "Y\3Y\3Y\3Y\5Y\u048c\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0497\nY\3Y\3Y\3"+ "Y\3Y\7Y\u049d\nY\fY\16Y\u04a0\13Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z"+ "\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\5Z\u04b6\nZ\5Z\u04b8\nZ\3[\3[\3[\3[\3[\3[\3["+ "\7[\u04c1\n[\f[\16[\u04c4\13[\3[\3[\5[\u04c8\n[\3\\\7\\\u04cb\n\\\f\\"+ "\16\\\u04ce\13\\\3\\\3\\\3\\\7\\\u04d3\n\\\f\\\16\\\u04d6\13\\\3\\\3\\"+ "\7\\\u04da\n\\\f\\\16\\\u04dd\13\\\3]\3]\3]\3]\3^\3^\3^\5^\u04e6\n^\3"+ "^\3^\3^\3^\3^\5^\u04ed\n^\3_\3_\3_\7_\u04f2\n_\f_\16_\u04f5\13_\3`\3`"+ "\5`\u04f9\n`\3a\3a\3a\3a\3a\3a\3a\5a\u0502\na\5a\u0504\na\3b\3b\5b\u0508"+ "\nb\3b\3b\3b\5b\u050d\nb\7b\u050f\nb\fb\16b\u0512\13b\3b\5b\u0515\nb\3"+ "c\3c\5c\u0519\nc\3c\3c\3d\3d\3d\3d\7d\u0521\nd\fd\16d\u0524\13d\3d\3d"+ "\3d\3d\3d\3d\3d\7d\u052d\nd\fd\16d\u0530\13d\3d\3d\7d\u0534\nd\fd\16d"+ "\u0537\13d\5d\u0539\nd\3e\3e\5e\u053d\ne\3f\3f\3f\3g\3g\3g\3g\3h\3h\3"+ "h\5h\u0549\nh\3i\3i\3i\5i\u054e\ni\3j\3j\3j\3j\5j\u0554\nj\5j\u0556\n"+ "j\3k\3k\3k\3k\5k\u055c\nk\3l\3l\5l\u0560\nl\3l\3l\3l\2\3\u00b0m\2\4\6"+ "\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRT"+ "VXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e"+ "\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6"+ "\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be"+ "\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6"+ "\2\17\6\2\"\"..\62\62\65\65\7\2\5\5\20\20\26\26%\'*+\n\2\7\7\t\t\f\f\22"+ "\22\30\30\37\37!!))\4\2\25\25,,\3\2\67<\3\2SV\3\2IJ\4\2WX\\\\\3\2UV\4"+ "\2GHNO\4\2MMPP\4\2FF]g\3\2ST\u05e3\2\u00d9\3\2\2\2\4\u00ec\3\2\2\2\6\u00f3"+ "\3\2\2\2\b\u011b\3\2\2\2\n\u011f\3\2\2\2\f\u0123\3\2\2\2\16\u0127\3\2"+ "\2\2\20\u0129\3\2\2\2\22\u0138\3\2\2\2\24\u0146\3\2\2\2\26\u014e\3\2\2"+ "\2\30\u0156\3\2\2\2\32\u0168\3\2\2\2\34\u0173\3\2\2\2\36\u017d\3\2\2\2"+ " \u0184\3\2\2\2\"\u018f\3\2\2\2$\u0197\3\2\2\2&\u01a0\3\2\2\2(\u01b5\3"+ "\2\2\2*\u01c0\3\2\2\2,\u01c4\3\2\2\2.\u01d7\3\2\2\2\60\u01da\3\2\2\2\62"+ "\u01e2\3\2\2\2\64\u01e5\3\2\2\2\66\u01f1\3\2\2\28\u01fa\3\2\2\2:\u01fc"+ "\3\2\2\2<\u0207\3\2\2\2>\u0214\3\2\2\2@\u0227\3\2\2\2B\u022a\3\2\2\2D"+ "\u0232\3\2\2\2F\u0237\3\2\2\2H\u0241\3\2\2\2J\u0243\3\2\2\2L\u0253\3\2"+ "\2\2N\u0265\3\2\2\2P\u0267\3\2\2\2R\u0275\3\2\2\2T\u0277\3\2\2\2V\u0288"+ "\3\2\2\2X\u028a\3\2\2\2Z\u0292\3\2\2\2\\\u02a5\3\2\2\2^\u02aa\3\2\2\2"+ "`\u02b3\3\2\2\2b\u02ba\3\2\2\2d\u02bc\3\2\2\2f\u02be\3\2\2\2h\u02c6\3"+ "\2\2\2j\u02c8\3\2\2\2l\u02d2\3\2\2\2n\u02d4\3\2\2\2p\u02dc\3\2\2\2r\u02e3"+ "\3\2\2\2t\u02e5\3\2\2\2v\u02f5\3\2\2\2x\u02fa\3\2\2\2z\u030b\3\2\2\2|"+ "\u0321\3\2\2\2~\u0325\3\2\2\2\u0080\u0327\3\2\2\2\u0082\u032d\3\2\2\2"+ "\u0084\u032f\3\2\2\2\u0086\u0332\3\2\2\2\u0088\u033e\3\2\2\2\u008a\u0340"+ "\3\2\2\2\u008c\u0346\3\2\2\2\u008e\u03b4\3\2\2\2\u0090\u03b6\3\2\2\2\u0092"+ "\u03c3\3\2\2\2\u0094\u03cb\3\2\2\2\u0096\u03ce\3\2\2\2\u0098\u03d5\3\2"+ "\2\2\u009a\u03e0\3\2\2\2\u009c\u03e9\3\2\2\2\u009e\u03fc\3\2\2\2\u00a0"+ "\u040a\3\2\2\2\u00a2\u040e\3\2\2\2\u00a4\u0413\3\2\2\2\u00a6\u041b\3\2"+ "\2\2\u00a8\u041d\3\2\2\2\u00aa\u0421\3\2\2\2\u00ac\u0429\3\2\2\2\u00ae"+ "\u042b\3\2\2\2\u00b0\u043b\3\2\2\2\u00b2\u04b7\3\2\2\2\u00b4\u04c7\3\2"+ "\2\2\u00b6\u04cc\3\2\2\2\u00b8\u04de\3\2\2\2\u00ba\u04ec\3\2\2\2\u00bc"+ "\u04ee\3\2\2\2\u00be\u04f8\3\2\2\2\u00c0\u0503\3\2\2\2\u00c2\u0514\3\2"+ "\2\2\u00c4\u0516\3\2\2\2\u00c6\u051c\3\2\2\2\u00c8\u053a\3\2\2\2\u00ca"+ "\u053e\3\2\2\2\u00cc\u0541\3\2\2\2\u00ce\u0548\3\2\2\2\u00d0\u054d\3\2"+ "\2\2\u00d2\u0555\3\2\2\2\u00d4\u055b\3\2\2\2\u00d6\u055d\3\2\2\2\u00d8"+ "\u00da\5\4\3\2\u00d9\u00d8\3\2\2\2\u00d9\u00da\3\2\2\2\u00da\u00de\3\2"+ "\2\2\u00db\u00dd\5\6\4\2\u00dc\u00db\3\2\2\2\u00dd\u00e0\3\2\2\2\u00de"+ "\u00dc\3\2\2\2\u00de\u00df\3\2\2\2\u00df\u00e4\3\2\2\2\u00e0\u00de\3\2"+ "\2\2\u00e1\u00e3\5\b\5\2\u00e2\u00e1\3\2\2\2\u00e3\u00e6\3\2\2\2\u00e4"+ "\u00e2\3\2\2\2\u00e4\u00e5\3\2\2\2\u00e5\u00e7\3\2\2\2\u00e6\u00e4\3\2"+ "\2\2\u00e7\u00e8\7\2\2\3\u00e8\3\3\2\2\2\u00e9\u00eb\5j\66\2\u00ea\u00e9"+ "\3\2\2\2\u00eb\u00ee\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed"+ "\u00ef\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ef\u00f0\7$\2\2\u00f0\u00f1\5f\64"+ "\2\u00f1\u00f2\7C\2\2\u00f2\5\3\2\2\2\u00f3\u00f5\7\35\2\2\u00f4\u00f6"+ "\7*\2\2\u00f5\u00f4\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7"+ "\u00fa\5f\64\2\u00f8\u00f9\7E\2\2\u00f9\u00fb\7W\2\2\u00fa\u00f8\3\2\2"+ "\2\u00fa\u00fb\3\2\2\2\u00fb\u00fc\3\2\2\2\u00fc\u00fd\7C\2\2\u00fd\7"+ "\3\2\2\2\u00fe\u0100\5\f\7\2\u00ff\u00fe\3\2\2\2\u0100\u0103\3\2\2\2\u0101"+ "\u00ff\3\2\2\2\u0101\u0102\3\2\2\2\u0102\u0104\3\2\2\2\u0103\u0101\3\2"+ "\2\2\u0104\u011c\5\20\t\2\u0105\u0107\5\f\7\2\u0106\u0105\3\2\2\2\u0107"+ "\u010a\3\2\2\2\u0108\u0106\3\2\2\2\u0108\u0109\3\2\2\2\u0109\u010b\3\2"+ "\2\2\u010a\u0108\3\2\2\2\u010b\u011c\5\30\r\2\u010c\u010e\5\f\7\2\u010d"+ "\u010c\3\2\2\2\u010e\u0111\3\2\2\2\u010f\u010d\3\2\2\2\u010f\u0110\3\2"+ "\2\2\u0110\u0112\3\2\2\2\u0111\u010f\3\2\2\2\u0112\u011c\5 \21\2\u0113"+ "\u0115\5\f\7\2\u0114\u0113\3\2\2\2\u0115\u0118\3\2\2\2\u0116\u0114\3\2"+ "\2\2\u0116\u0117\3\2\2\2\u0117\u0119\3\2\2\2\u0118\u0116\3\2\2\2\u0119"+ "\u011c\5v<\2\u011a\u011c\7C\2\2\u011b\u0101\3\2\2\2\u011b\u0108\3\2\2"+ "\2\u011b\u010f\3\2\2\2\u011b\u0116\3\2\2\2\u011b\u011a\3\2\2\2\u011c\t"+ "\3\2\2\2\u011d\u0120\5\f\7\2\u011e\u0120\t\2\2\2\u011f\u011d\3\2\2\2\u011f"+ "\u011e\3\2\2\2\u0120\13\3\2\2\2\u0121\u0124\5j\66\2\u0122\u0124\t\3\2"+ "\2\u0123\u0121\3\2\2\2\u0123\u0122\3\2\2\2\u0124\r\3\2\2\2\u0125\u0128"+ "\7\26\2\2\u0126\u0128\5j\66\2\u0127\u0125\3\2\2\2\u0127\u0126\3\2\2\2"+ "\u0128\17\3\2\2\2\u0129\u012a\7\r\2\2\u012a\u012c\7h\2\2\u012b\u012d\5"+ "\22\n\2\u012c\u012b\3\2\2\2\u012c\u012d\3\2\2\2\u012d\u0130\3\2\2\2\u012e"+ "\u012f\7\25\2\2\u012f\u0131\5N(\2\u0130\u012e\3\2\2\2\u0130\u0131\3\2"+ "\2\2\u0131\u0134\3\2\2\2\u0132\u0133\7\34\2\2\u0133\u0135\5\"\22\2\u0134"+ "\u0132\3\2\2\2\u0134\u0135\3\2\2\2\u0135\u0136\3\2\2\2\u0136\u0137\5$"+ "\23\2\u0137\21\3\2\2\2\u0138\u0139\7H\2\2\u0139\u013e\5\24\13\2\u013a"+ "\u013b\7D\2\2\u013b\u013d\5\24\13\2\u013c\u013a\3\2\2\2\u013d\u0140\3"+ "\2\2\2\u013e\u013c\3\2\2\2\u013e\u013f\3\2\2\2\u013f\u0141\3\2\2\2\u0140"+ "\u013e\3\2\2\2\u0141\u0142\7G\2\2\u0142\23\3\2\2\2\u0143\u0145\5j\66\2"+ "\u0144\u0143\3\2\2\2\u0145\u0148\3\2\2\2\u0146\u0144\3\2\2\2\u0146\u0147"+ "\3\2\2\2\u0147\u0149\3\2\2\2\u0148\u0146\3\2\2\2\u0149\u014c\7h\2\2\u014a"+ "\u014b\7\25\2\2\u014b\u014d\5\26\f\2\u014c\u014a\3\2\2\2\u014c\u014d\3"+ "\2\2\2\u014d\25\3\2\2\2\u014e\u0153\5N(\2\u014f\u0150\7Y\2\2\u0150\u0152"+ "\5N(\2\u0151\u014f\3\2\2\2\u0152\u0155\3\2\2\2\u0153\u0151\3\2\2\2\u0153"+ "\u0154\3\2\2\2\u0154\27\3\2\2\2\u0155\u0153\3\2\2\2\u0156\u0157\7\24\2"+ "\2\u0157\u015a\7h\2\2\u0158\u0159\7\34\2\2\u0159\u015b\5\"\22\2\u015a"+ "\u0158\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u015c\3\2\2\2\u015c\u015e\7?"+ "\2\2\u015d\u015f\5\32\16\2\u015e\u015d\3\2\2\2\u015e\u015f\3\2\2\2\u015f"+ "\u0161\3\2\2\2\u0160\u0162\7D\2\2\u0161\u0160\3\2\2\2\u0161\u0162\3\2"+ "\2\2\u0162\u0164\3\2\2\2\u0163\u0165\5\36\20\2\u0164\u0163\3\2\2\2\u0164"+ "\u0165\3\2\2\2\u0165\u0166\3\2\2\2\u0166\u0167\7@\2\2\u0167\31\3\2\2\2"+ "\u0168\u016d\5\34\17\2\u0169\u016a\7D\2\2\u016a\u016c\5\34\17\2\u016b"+ "\u0169\3\2\2\2\u016c\u016f\3\2\2\2\u016d\u016b\3\2\2\2\u016d\u016e\3\2"+ "\2\2\u016e\33\3\2\2\2\u016f\u016d\3\2\2\2\u0170\u0172\5j\66\2\u0171\u0170"+ "\3\2\2\2\u0172\u0175\3\2\2\2\u0173\u0171\3\2\2\2\u0173\u0174\3\2\2\2\u0174"+ "\u0176\3\2\2\2\u0175\u0173\3\2\2\2\u0176\u0178\7h\2\2\u0177\u0179\5\u00d6"+ "l\2\u0178\u0177\3\2\2\2\u0178\u0179\3\2\2\2\u0179\u017b\3\2\2\2\u017a"+ "\u017c\5$\23\2\u017b\u017a\3\2\2\2\u017b\u017c\3\2\2\2\u017c\35\3\2\2"+ "\2\u017d\u0181\7C\2\2\u017e\u0180\5(\25\2\u017f\u017e\3\2\2\2\u0180\u0183"+ "\3\2\2\2\u0181\u017f\3\2\2\2\u0181\u0182\3\2\2\2\u0182\37\3\2\2\2\u0183"+ "\u0181\3\2\2\2\u0184\u0185\7 \2\2\u0185\u0187\7h\2\2\u0186\u0188\5\22"+ "\n\2\u0187\u0186\3\2\2\2\u0187\u0188\3\2\2\2\u0188\u018b\3\2\2\2\u0189"+ "\u018a\7\25\2\2\u018a\u018c\5\"\22\2\u018b\u0189\3\2\2\2\u018b\u018c\3"+ "\2\2\2\u018c\u018d\3\2\2\2\u018d\u018e\5&\24\2\u018e!\3\2\2\2\u018f\u0194"+ "\5N(\2\u0190\u0191\7D\2\2\u0191\u0193\5N(\2\u0192\u0190\3\2\2\2\u0193"+ "\u0196\3\2\2\2\u0194\u0192\3\2\2\2\u0194\u0195\3\2\2\2\u0195#\3\2\2\2"+ "\u0196\u0194\3\2\2\2\u0197\u019b\7?\2\2\u0198\u019a\5(\25\2\u0199\u0198"+ "\3\2\2\2\u019a\u019d\3\2\2\2\u019b\u0199\3\2\2\2\u019b\u019c\3\2\2\2\u019c"+ "\u019e\3\2\2\2\u019d\u019b\3\2\2\2\u019e\u019f\7@\2\2\u019f%\3\2\2\2\u01a0"+ "\u01a4\7?\2\2\u01a1\u01a3\5\66\34\2\u01a2\u01a1\3\2\2\2\u01a3\u01a6\3"+ "\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2\2\2\u01a5\u01a7\3\2\2\2\u01a6"+ "\u01a4\3\2\2\2\u01a7\u01a8\7@\2\2\u01a8\'\3\2\2\2\u01a9\u01b6\7C\2\2\u01aa"+ "\u01ac\7*\2\2\u01ab\u01aa\3\2\2\2\u01ab\u01ac\3\2\2\2\u01ac\u01ad\3\2"+ "\2\2\u01ad\u01b6\5\u0086D\2\u01ae\u01b0\5\n\6\2\u01af\u01ae\3\2\2\2\u01b0"+ "\u01b3\3\2\2\2\u01b1\u01af\3\2\2\2\u01b1\u01b2\3\2\2\2\u01b2\u01b4\3\2"+ "\2\2\u01b3\u01b1\3\2\2\2\u01b4\u01b6\5*\26\2\u01b5\u01a9\3\2\2\2\u01b5"+ "\u01ab\3\2\2\2\u01b5\u01b1\3\2\2\2\u01b6)\3\2\2\2\u01b7\u01c1\5,\27\2"+ "\u01b8\u01c1\5.\30\2\u01b9\u01c1\5\64\33\2\u01ba\u01c1\5\60\31\2\u01bb"+ "\u01c1\5\62\32\2\u01bc\u01c1\5 \21\2\u01bd\u01c1\5v<\2\u01be\u01c1\5\20"+ "\t\2\u01bf\u01c1\5\30\r\2\u01c0\u01b7\3\2\2\2\u01c0\u01b8\3\2\2\2\u01c0"+ "\u01b9\3\2\2\2\u01c0\u01ba\3\2\2\2\u01c0\u01bb\3\2\2\2\u01c0\u01bc\3\2"+ "\2\2\u01c0\u01bd\3\2\2\2\u01c0\u01be\3\2\2\2\u01c0\u01bf\3\2\2\2\u01c1"+ "+\3\2\2\2\u01c2\u01c5\5N(\2\u01c3\u01c5\7\64\2\2\u01c4\u01c2\3\2\2\2\u01c4"+ "\u01c3\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c7\7h\2\2\u01c7\u01cc\5Z."+ "\2\u01c8\u01c9\7A\2\2\u01c9\u01cb\7B\2\2\u01ca\u01c8\3\2\2\2\u01cb\u01ce"+ "\3\2\2\2\u01cc\u01ca\3\2\2\2\u01cc\u01cd\3\2\2\2\u01cd\u01d1\3\2\2\2\u01ce"+ "\u01cc\3\2\2\2\u01cf\u01d0\7\61\2\2\u01d0\u01d2\5X-\2\u01d1\u01cf\3\2"+ "\2\2\u01d1\u01d2\3\2\2\2\u01d2\u01d5\3\2\2\2\u01d3\u01d6\5b\62\2\u01d4"+ "\u01d6\7C\2\2\u01d5\u01d3\3\2\2\2\u01d5\u01d4\3\2\2\2\u01d6-\3\2\2\2\u01d7"+ "\u01d8\5\22\n\2\u01d8\u01d9\5,\27\2\u01d9/\3\2\2\2\u01da\u01db\7h\2\2"+ "\u01db\u01de\5Z.\2\u01dc\u01dd\7\61\2\2\u01dd\u01df\5X-\2\u01de\u01dc"+ "\3\2\2\2\u01de\u01df\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e1\5d\63\2\u01e1"+ "\61\3\2\2\2\u01e2\u01e3\5\22\n\2\u01e3\u01e4\5\60\31\2\u01e4\63\3\2\2"+ "\2\u01e5\u01e6\5N(\2\u01e6\u01e7\5B\"\2\u01e7\u01e8\7C\2\2\u01e8\65\3"+ "\2\2\2\u01e9\u01eb\5\n\6\2\u01ea\u01e9\3\2\2\2\u01eb\u01ee\3\2\2\2\u01ec"+ "\u01ea\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed\u01ef\3\2\2\2\u01ee\u01ec\3\2"+ "\2\2\u01ef\u01f2\58\35\2\u01f0\u01f2\7C\2\2\u01f1\u01ec\3\2\2\2\u01f1"+ "\u01f0\3\2\2\2\u01f2\67\3\2\2\2\u01f3\u01fb\5:\36\2\u01f4\u01fb\5> \2"+ "\u01f5\u01fb\5@!\2\u01f6\u01fb\5 \21\2\u01f7\u01fb\5v<\2\u01f8\u01fb\5"+ "\20\t\2\u01f9\u01fb\5\30\r\2\u01fa\u01f3\3\2\2\2\u01fa\u01f4\3\2\2\2\u01fa"+ "\u01f5\3\2\2\2\u01fa\u01f6\3\2\2\2\u01fa\u01f7\3\2\2\2\u01fa\u01f8\3\2"+ "\2\2\u01fa\u01f9\3\2\2\2\u01fb9\3\2\2\2\u01fc\u01fd\5N(\2\u01fd\u0202"+ "\5<\37\2\u01fe\u01ff\7D\2\2\u01ff\u0201\5<\37\2\u0200\u01fe\3\2\2\2\u0201"+ "\u0204\3\2\2\2\u0202\u0200\3\2\2\2\u0202\u0203\3\2\2\2\u0203\u0205\3\2"+ "\2\2\u0204\u0202\3\2\2\2\u0205\u0206\7C\2\2\u0206;\3\2\2\2\u0207\u020c"+ "\7h\2\2\u0208\u0209\7A\2\2\u0209\u020b\7B\2\2\u020a\u0208\3\2\2\2\u020b"+ "\u020e\3\2\2\2\u020c\u020a\3\2\2\2\u020c\u020d\3\2\2\2\u020d\u020f\3\2"+ "\2\2\u020e\u020c\3\2\2\2\u020f\u0210\7F\2\2\u0210\u0211\5H%\2\u0211=\3"+ "\2\2\2\u0212\u0215\5N(\2\u0213\u0215\7\64\2\2\u0214\u0212\3\2\2\2\u0214"+ "\u0213\3\2\2\2\u0215\u0216\3\2\2\2\u0216\u0217\7h\2\2\u0217\u021c\5Z."+ "\2\u0218\u0219\7A\2\2\u0219\u021b\7B\2\2\u021a\u0218\3\2\2\2\u021b\u021e"+ "\3\2\2\2\u021c\u021a\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u0221\3\2\2\2\u021e"+ "\u021c\3\2\2\2\u021f\u0220\7\61\2\2\u0220\u0222\5X-\2\u0221\u021f\3\2"+ "\2\2\u0221\u0222\3\2\2\2\u0222\u0225\3\2\2\2\u0223\u0226\5b\62\2\u0224"+ "\u0226\7C\2\2\u0225\u0223\3\2\2\2\u0225\u0224\3\2\2\2\u0226?\3\2\2\2\u0227"+ "\u0228\5\22\n\2\u0228\u0229\5> \2\u0229A\3\2\2\2\u022a\u022f\5D#\2\u022b"+ "\u022c\7D\2\2\u022c\u022e\5D#\2\u022d\u022b\3\2\2\2\u022e\u0231\3\2\2"+ "\2\u022f\u022d\3\2\2\2\u022f\u0230\3\2\2\2\u0230C\3\2\2\2\u0231\u022f"+ "\3\2\2\2\u0232\u0235\5F$\2\u0233\u0234\7F\2\2\u0234\u0236\5H%\2\u0235"+ "\u0233\3\2\2\2\u0235\u0236\3\2\2\2\u0236E\3\2\2\2\u0237\u023c\7h\2\2\u0238"+ "\u0239\7A\2\2\u0239\u023b\7B\2\2\u023a\u0238\3\2\2\2\u023b\u023e\3\2\2"+ "\2\u023c\u023a\3\2\2\2\u023c\u023d\3\2\2\2\u023dG\3\2\2\2\u023e\u023c"+ "\3\2\2\2\u023f\u0242\5J&\2\u0240\u0242\5\u00b0Y\2\u0241\u023f\3\2\2\2"+ "\u0241\u0240\3\2\2\2\u0242I\3\2\2\2\u0243\u024f\7?\2\2\u0244\u0249\5H"+ "%\2\u0245\u0246\7D\2\2\u0246\u0248\5H%\2\u0247\u0245\3\2\2\2\u0248\u024b"+ "\3\2\2\2\u0249\u0247\3\2\2\2\u0249\u024a\3\2\2\2\u024a\u024d\3\2\2\2\u024b"+ "\u0249\3\2\2\2\u024c\u024e\7D\2\2\u024d\u024c\3\2\2\2\u024d\u024e\3\2"+ "\2\2\u024e\u0250\3\2\2\2\u024f\u0244\3\2\2\2\u024f\u0250\3\2\2\2\u0250"+ "\u0251\3\2\2\2\u0251\u0252\7@\2\2\u0252K\3\2\2\2\u0253\u0254\7h\2\2\u0254"+ "M\3\2\2\2\u0255\u025a\5P)\2\u0256\u0257\7A\2\2\u0257\u0259\7B\2\2\u0258"+ "\u0256\3\2\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2\u025a\u025b\3\2"+ "\2\2\u025b\u0266\3\2\2\2\u025c\u025a\3\2\2\2\u025d\u0262\5R*\2\u025e\u025f"+ "\7A\2\2\u025f\u0261\7B\2\2\u0260\u025e\3\2\2\2\u0261\u0264\3\2\2\2\u0262"+ "\u0260\3\2\2\2\u0262\u0263\3\2\2\2\u0263\u0266\3\2\2\2\u0264\u0262\3\2"+ "\2\2\u0265\u0255\3\2\2\2\u0265\u025d\3\2\2\2\u0266O\3\2\2\2\u0267\u0269"+ "\7h\2\2\u0268\u026a\5T+\2\u0269\u0268\3\2\2\2\u0269\u026a\3\2\2\2\u026a"+ "\u0272\3\2\2\2\u026b\u026c\7E\2\2\u026c\u026e\7h\2\2\u026d\u026f\5T+\2"+ "\u026e\u026d\3\2\2\2\u026e\u026f\3\2\2\2\u026f\u0271\3\2\2\2\u0270\u026b"+ "\3\2\2\2\u0271\u0274\3\2\2\2\u0272\u0270\3\2\2\2\u0272\u0273\3\2\2\2\u0273"+ "Q\3\2\2\2\u0274\u0272\3\2\2\2\u0275\u0276\t\4\2\2\u0276S\3\2\2\2\u0277"+ "\u0278\7H\2\2\u0278\u027d\5V,\2\u0279\u027a\7D\2\2\u027a\u027c\5V,\2\u027b"+ "\u0279\3\2\2\2\u027c\u027f\3\2\2\2\u027d\u027b\3\2\2\2\u027d\u027e\3\2"+ "\2\2\u027e\u0280\3\2\2\2\u027f\u027d\3\2\2\2\u0280\u0281\7G\2\2\u0281"+ "U\3\2\2\2\u0282\u0289\5N(\2\u0283\u0286\7K\2\2\u0284\u0285\t\5\2\2\u0285"+ "\u0287\5N(\2\u0286\u0284\3\2\2\2\u0286\u0287\3\2\2\2\u0287\u0289\3\2\2"+ "\2\u0288\u0282\3\2\2\2\u0288\u0283\3\2\2\2\u0289W\3\2\2\2\u028a\u028f"+ "\5f\64\2\u028b\u028c\7D\2\2\u028c\u028e\5f\64\2\u028d\u028b\3\2\2\2\u028e"+ "\u0291\3\2\2\2\u028f\u028d\3\2\2\2\u028f\u0290\3\2\2\2\u0290Y\3\2\2\2"+ "\u0291\u028f\3\2\2\2\u0292\u0294\7=\2\2\u0293\u0295\5\\/\2\u0294\u0293"+ "\3\2\2\2\u0294\u0295\3\2\2\2\u0295\u0296\3\2\2\2\u0296\u0297\7>\2\2\u0297"+ "[\3\2\2\2\u0298\u029d\5^\60\2\u0299\u029a\7D\2\2\u029a\u029c\5^\60\2\u029b"+ "\u0299\3\2\2\2\u029c\u029f\3\2\2\2\u029d\u029b\3\2\2\2\u029d\u029e\3\2"+ "\2\2\u029e\u02a2\3\2\2\2\u029f\u029d\3\2\2\2\u02a0\u02a1\7D\2\2\u02a1"+ "\u02a3\5`\61\2\u02a2\u02a0\3\2\2\2\u02a2\u02a3\3\2\2\2\u02a3\u02a6\3\2"+ "\2\2\u02a4\u02a6\5`\61\2\u02a5\u0298\3\2\2\2\u02a5\u02a4\3\2\2\2\u02a6"+ "]\3\2\2\2\u02a7\u02a9\5\16\b\2\u02a8\u02a7\3\2\2\2\u02a9\u02ac\3\2\2\2"+ "\u02aa\u02a8\3\2\2\2\u02aa\u02ab\3\2\2\2\u02ab\u02ad\3\2\2\2\u02ac\u02aa"+ "\3\2\2\2\u02ad\u02ae\5N(\2\u02ae\u02af\5F$\2\u02af_\3\2\2\2\u02b0\u02b2"+ "\5\16\b\2\u02b1\u02b0\3\2\2\2\u02b2\u02b5\3\2\2\2\u02b3\u02b1\3\2\2\2"+ "\u02b3\u02b4\3\2\2\2\u02b4\u02b6\3\2\2\2\u02b5\u02b3\3\2\2\2\u02b6\u02b7"+ "\5N(\2\u02b7\u02b8\7j\2\2\u02b8\u02b9\5F$\2\u02b9a\3\2\2\2\u02ba\u02bb"+ "\5\u0086D\2\u02bbc\3\2\2\2\u02bc\u02bd\5\u0086D\2\u02bde\3\2\2\2\u02be"+ "\u02c3\7h\2\2\u02bf\u02c0\7E\2\2\u02c0\u02c2\7h\2\2\u02c1\u02bf\3\2\2"+ "\2\u02c2\u02c5\3\2\2\2\u02c3\u02c1\3\2\2\2\u02c3\u02c4\3\2\2\2\u02c4g"+ "\3\2\2\2\u02c5\u02c3\3\2\2\2\u02c6\u02c7\t\6\2\2\u02c7i\3\2\2\2\u02c8"+ "\u02c9\7i\2\2\u02c9\u02d0\5l\67\2\u02ca\u02cd\7=\2\2\u02cb\u02ce\5n8\2"+ "\u02cc\u02ce\5r:\2\u02cd\u02cb\3\2\2\2\u02cd\u02cc\3\2\2\2\u02cd\u02ce"+ "\3\2\2\2\u02ce\u02cf\3\2\2\2\u02cf\u02d1\7>\2\2\u02d0\u02ca\3\2\2\2\u02d0"+ "\u02d1\3\2\2\2\u02d1k\3\2\2\2\u02d2\u02d3\5f\64\2\u02d3m\3\2\2\2\u02d4"+ "\u02d9\5p9\2\u02d5\u02d6\7D\2\2\u02d6\u02d8\5p9\2\u02d7\u02d5\3\2\2\2"+ "\u02d8\u02db\3\2\2\2\u02d9\u02d7\3\2\2\2\u02d9\u02da\3\2\2\2\u02dao\3"+ "\2\2\2\u02db\u02d9\3\2\2\2\u02dc\u02dd\7h\2\2\u02dd\u02de\7F\2\2\u02de"+ "\u02df\5r:\2\u02dfq\3\2\2\2\u02e0\u02e4\5\u00b0Y\2\u02e1\u02e4\5j\66\2"+ "\u02e2\u02e4\5t;\2\u02e3\u02e0\3\2\2\2\u02e3\u02e1\3\2\2\2\u02e3\u02e2"+ "\3\2\2\2\u02e4s\3\2\2\2\u02e5\u02ee\7?\2\2\u02e6\u02eb\5r:\2\u02e7\u02e8"+ "\7D\2\2\u02e8\u02ea\5r:\2\u02e9\u02e7\3\2\2\2\u02ea\u02ed\3\2\2\2\u02eb"+ "\u02e9\3\2\2\2\u02eb\u02ec\3\2\2\2\u02ec\u02ef\3\2\2\2\u02ed\u02eb\3\2"+ "\2\2\u02ee\u02e6\3\2\2\2\u02ee\u02ef\3\2\2\2\u02ef\u02f1\3\2\2\2\u02f0"+ "\u02f2\7D\2\2\u02f1\u02f0\3\2\2\2\u02f1\u02f2\3\2\2\2\u02f2\u02f3\3\2"+ "\2\2\u02f3\u02f4\7@\2\2\u02f4u\3\2\2\2\u02f5\u02f6\7i\2\2\u02f6\u02f7"+ "\7 \2\2\u02f7\u02f8\7h\2\2\u02f8\u02f9\5x=\2\u02f9w\3\2\2\2\u02fa\u02fe"+ "\7?\2\2\u02fb\u02fd\5z>\2\u02fc\u02fb\3\2\2\2\u02fd\u0300\3\2\2\2\u02fe"+ "\u02fc\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0301\3\2\2\2\u0300\u02fe\3\2"+ "\2\2\u0301\u0302\7@\2\2\u0302y\3\2\2\2\u0303\u0305\5\n\6\2\u0304\u0303"+ "\3\2\2\2\u0305\u0308\3\2\2\2\u0306\u0304\3\2\2\2\u0306\u0307\3\2\2\2\u0307"+ "\u0309\3\2\2\2\u0308\u0306\3\2\2\2\u0309\u030c\5|?\2\u030a\u030c\7C\2"+ "\2\u030b\u0306\3\2\2\2\u030b\u030a\3\2\2\2\u030c{\3\2\2\2\u030d\u030e"+ "\5N(\2\u030e\u030f\5~@\2\u030f\u0310\7C\2\2\u0310\u0322\3\2\2\2\u0311"+ "\u0313\5\20\t\2\u0312\u0314\7C\2\2\u0313\u0312\3\2\2\2\u0313\u0314\3\2"+ "\2\2\u0314\u0322\3\2\2\2\u0315\u0317\5 \21\2\u0316\u0318\7C\2\2\u0317"+ "\u0316\3\2\2\2\u0317\u0318\3\2\2\2\u0318\u0322\3\2\2\2\u0319\u031b\5\30"+ "\r\2\u031a\u031c\7C\2\2\u031b\u031a\3\2\2\2\u031b\u031c\3\2\2\2\u031c"+ "\u0322\3\2\2\2\u031d\u031f\5v<\2\u031e\u0320\7C\2\2\u031f\u031e\3\2\2"+ "\2\u031f\u0320\3\2\2\2\u0320\u0322\3\2\2\2\u0321\u030d\3\2\2\2\u0321\u0311"+ "\3\2\2\2\u0321\u0315\3\2\2\2\u0321\u0319\3\2\2\2\u0321\u031d\3\2\2\2\u0322"+ "}\3\2\2\2\u0323\u0326\5\u0080A\2\u0324\u0326\5\u0082B\2\u0325\u0323\3"+ "\2\2\2\u0325\u0324\3\2\2\2\u0326\177\3\2\2\2\u0327\u0328\7h\2\2\u0328"+ "\u0329\7=\2\2\u0329\u032b\7>\2\2\u032a\u032c\5\u0084C\2\u032b\u032a\3"+ "\2\2\2\u032b\u032c\3\2\2\2\u032c\u0081\3\2\2\2\u032d\u032e\5B\"\2\u032e"+ "\u0083\3\2\2\2\u032f\u0330\7\20\2\2\u0330\u0331\5r:\2\u0331\u0085\3\2"+ "\2\2\u0332\u0336\7?\2\2\u0333\u0335\5\u0088E\2\u0334\u0333\3\2\2\2\u0335"+ "\u0338\3\2\2\2\u0336\u0334\3\2\2\2\u0336\u0337\3\2\2\2\u0337\u0339\3\2"+ "\2\2\u0338\u0336\3\2\2\2\u0339\u033a\7@\2\2\u033a\u0087\3\2\2\2\u033b"+ "\u033f\5\u008aF\2\u033c\u033f\5\u008eH\2\u033d\u033f\5\b\5\2\u033e\u033b"+ "\3\2\2\2\u033e\u033c\3\2\2\2\u033e\u033d\3\2\2\2\u033f\u0089\3\2\2\2\u0340"+ "\u0341\5\u008cG\2\u0341\u0342\7C\2\2\u0342\u008b\3\2\2\2\u0343\u0345\5"+ "\16\b\2\u0344\u0343\3\2\2\2\u0345\u0348\3\2\2\2\u0346\u0344\3\2\2\2\u0346"+ "\u0347\3\2\2\2\u0347\u0349\3\2\2\2\u0348\u0346\3\2\2\2\u0349\u034a\5N"+ "(\2\u034a\u034b\5B\"\2\u034b\u008d\3\2\2\2\u034c\u03b5\5\u0086D\2\u034d"+ "\u034e\7\6\2\2\u034e\u0351\5\u00b0Y\2\u034f\u0350\7L\2\2\u0350\u0352\5"+ "\u00b0Y\2\u0351\u034f\3\2\2\2\u0351\u0352\3\2\2\2\u0352\u0353\3\2\2\2"+ "\u0353\u0354\7C\2\2\u0354\u03b5\3\2\2\2\u0355\u0356\7\32\2\2\u0356\u0357"+ "\5\u00a8U\2\u0357\u035a\5\u008eH\2\u0358\u0359\7\23\2\2\u0359\u035b\5"+ "\u008eH\2\u035a\u0358\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u03b5\3\2\2\2"+ "\u035c\u035d\7\31\2\2\u035d\u035e\7=\2\2\u035e\u035f\5\u00a0Q\2\u035f"+ "\u0360\7>\2\2\u0360\u0361\5\u008eH\2\u0361\u03b5\3\2\2\2\u0362\u0363\7"+ "\66\2\2\u0363\u0364\5\u00a8U\2\u0364\u0365\5\u008eH\2\u0365\u03b5\3\2"+ "\2\2\u0366\u0367\7\21\2\2\u0367\u0368\5\u008eH\2\u0368\u0369\7\66\2\2"+ "\u0369\u036a\5\u00a8U\2\u036a\u036b\7C\2\2\u036b\u03b5\3\2\2\2\u036c\u036d"+ "\7\63\2\2\u036d\u0377\5\u0086D\2\u036e\u0370\5\u0090I\2\u036f\u036e\3"+ "\2\2\2\u0370\u0371\3\2\2\2\u0371\u036f\3\2\2\2\u0371\u0372\3\2\2\2\u0372"+ "\u0374\3\2\2\2\u0373\u0375\5\u0094K\2\u0374\u0373\3\2\2\2\u0374\u0375"+ "\3\2\2\2\u0375\u0378\3\2\2\2\u0376\u0378\5\u0094K\2\u0377\u036f\3\2\2"+ "\2\u0377\u0376\3\2\2\2\u0378\u03b5\3\2\2\2\u0379\u037a\7\63\2\2\u037a"+ "\u037b\5\u0096L\2\u037b\u037f\5\u0086D\2\u037c\u037e\5\u0090I\2\u037d"+ "\u037c\3\2\2\2\u037e\u0381\3\2\2\2\u037f\u037d\3\2\2\2\u037f\u0380\3\2"+ "\2\2\u0380\u0383\3\2\2\2\u0381\u037f\3\2\2\2\u0382\u0384\5\u0094K\2\u0383"+ "\u0382\3\2\2\2\u0383\u0384\3\2\2\2\u0384\u03b5\3\2\2\2\u0385\u0386\7-"+ "\2\2\u0386\u0387\5\u00a8U\2\u0387\u038b\7?\2\2\u0388\u038a\5\u009cO\2"+ "\u0389\u0388\3\2\2\2\u038a\u038d\3\2\2\2\u038b\u0389\3\2\2\2\u038b\u038c"+ "\3\2\2\2\u038c\u0391\3\2\2\2\u038d\u038b\3\2\2\2\u038e\u0390\5\u009eP"+ "\2\u038f\u038e\3\2\2\2\u0390\u0393\3\2\2\2\u0391\u038f\3\2\2\2\u0391\u0392"+ "\3\2\2\2\u0392\u0394\3\2\2\2\u0393\u0391\3\2\2\2\u0394\u0395\7@\2\2\u0395"+ "\u03b5\3\2\2\2\u0396\u0397\7.\2\2\u0397\u0398\5\u00a8U\2\u0398\u0399\5"+ "\u0086D\2\u0399\u03b5\3\2\2\2\u039a\u039c\7(\2\2\u039b\u039d\5\u00b0Y"+ "\2\u039c\u039b\3\2\2\2\u039c\u039d\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u03b5"+ "\7C\2\2\u039f\u03a0\7\60\2\2\u03a0\u03a1\5\u00b0Y\2\u03a1\u03a2\7C\2\2"+ "\u03a2\u03b5\3\2\2\2\u03a3\u03a5\7\b\2\2\u03a4\u03a6\7h\2\2\u03a5\u03a4"+ "\3\2\2\2\u03a5\u03a6\3\2\2\2\u03a6\u03a7\3\2\2\2\u03a7\u03b5\7C\2\2\u03a8"+ "\u03aa\7\17\2\2\u03a9\u03ab\7h\2\2\u03aa\u03a9\3\2\2\2\u03aa\u03ab\3\2"+ "\2\2\u03ab\u03ac\3\2\2\2\u03ac\u03b5\7C\2\2\u03ad\u03b5\7C\2\2\u03ae\u03af"+ "\5\u00acW\2\u03af\u03b0\7C\2\2\u03b0\u03b5\3\2\2\2\u03b1\u03b2\7h\2\2"+ "\u03b2\u03b3\7L\2\2\u03b3\u03b5\5\u008eH\2\u03b4\u034c\3\2\2\2\u03b4\u034d"+ "\3\2\2\2\u03b4\u0355\3\2\2\2\u03b4\u035c\3\2\2\2\u03b4\u0362\3\2\2\2\u03b4"+ "\u0366\3\2\2\2\u03b4\u036c\3\2\2\2\u03b4\u0379\3\2\2\2\u03b4\u0385\3\2"+ "\2\2\u03b4\u0396\3\2\2\2\u03b4\u039a\3\2\2\2\u03b4\u039f\3\2\2\2\u03b4"+ "\u03a3\3\2\2\2\u03b4\u03a8\3\2\2\2\u03b4\u03ad\3\2\2\2\u03b4\u03ae\3\2"+ "\2\2\u03b4\u03b1\3\2\2\2\u03b5\u008f\3\2\2\2\u03b6\u03b7\7\13\2\2\u03b7"+ "\u03bb\7=\2\2\u03b8\u03ba\5\16\b\2\u03b9\u03b8\3\2\2\2\u03ba\u03bd\3\2"+ "\2\2\u03bb\u03b9\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u03be\3\2\2\2\u03bd"+ "\u03bb\3\2\2\2\u03be\u03bf\5\u0092J\2\u03bf\u03c0\7h\2\2\u03c0\u03c1\7"+ ">\2\2\u03c1\u03c2\5\u0086D\2\u03c2\u0091\3\2\2\2\u03c3\u03c8\5f\64\2\u03c4"+ "\u03c5\7Z\2\2\u03c5\u03c7\5f\64\2\u03c6\u03c4\3\2\2\2\u03c7\u03ca\3\2"+ "\2\2\u03c8\u03c6\3\2\2\2\u03c8\u03c9\3\2\2\2\u03c9\u0093\3\2\2\2\u03ca"+ "\u03c8\3\2\2\2\u03cb\u03cc\7\27\2\2\u03cc\u03cd\5\u0086D\2\u03cd\u0095"+ "\3\2\2\2\u03ce\u03cf\7=\2\2\u03cf\u03d1\5\u0098M\2\u03d0\u03d2\7C\2\2"+ "\u03d1\u03d0\3\2\2\2\u03d1\u03d2\3\2\2\2\u03d2\u03d3\3\2\2\2\u03d3\u03d4"+ "\7>\2\2\u03d4\u0097\3\2\2\2\u03d5\u03da\5\u009aN\2\u03d6\u03d7\7C\2\2"+ "\u03d7\u03d9\5\u009aN\2\u03d8\u03d6\3\2\2\2\u03d9\u03dc\3\2\2\2\u03da"+ "\u03d8\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u0099\3\2\2\2\u03dc\u03da\3\2"+ "\2\2\u03dd\u03df\5\16\b\2\u03de\u03dd\3\2\2\2\u03df\u03e2\3\2\2\2\u03e0"+ "\u03de\3\2\2\2\u03e0\u03e1\3\2\2\2\u03e1\u03e3\3\2\2\2\u03e2\u03e0\3\2"+ "\2\2\u03e3\u03e4\5P)\2\u03e4\u03e5\5F$\2\u03e5\u03e6\7F\2\2\u03e6\u03e7"+ "\5\u00b0Y\2\u03e7\u009b\3\2\2\2\u03e8\u03ea\5\u009eP\2\u03e9\u03e8\3\2"+ "\2\2\u03ea\u03eb\3\2\2\2\u03eb\u03e9\3\2\2\2\u03eb\u03ec\3\2\2\2\u03ec"+ "\u03ee\3\2\2\2\u03ed\u03ef\5\u0088E\2\u03ee\u03ed\3\2\2\2\u03ef\u03f0"+ "\3\2\2\2\u03f0\u03ee\3\2\2\2\u03f0\u03f1\3\2\2\2\u03f1\u009d\3\2\2\2\u03f2"+ "\u03f3\7\n\2\2\u03f3\u03f4\5\u00aeX\2\u03f4\u03f5\7L\2\2\u03f5\u03fd\3"+ "\2\2\2\u03f6\u03f7\7\n\2\2\u03f7\u03f8\5L\'\2\u03f8\u03f9\7L\2\2\u03f9"+ "\u03fd\3\2\2\2\u03fa\u03fb\7\20\2\2\u03fb\u03fd\7L\2\2\u03fc\u03f2\3\2"+ "\2\2\u03fc\u03f6\3\2\2\2\u03fc\u03fa\3\2\2\2\u03fd\u009f\3\2\2\2\u03fe"+ "\u040b\5\u00a4S\2\u03ff\u0401\5\u00a2R\2\u0400\u03ff\3\2\2\2\u0400\u0401"+ "\3\2\2\2\u0401\u0402\3\2\2\2\u0402\u0404\7C\2\2\u0403\u0405\5\u00b0Y\2"+ "\u0404\u0403\3\2\2\2\u0404\u0405\3\2\2\2\u0405\u0406\3\2\2\2\u0406\u0408"+ "\7C\2\2\u0407\u0409\5\u00a6T\2\u0408\u0407\3\2\2\2\u0408\u0409\3\2\2\2"+ "\u0409\u040b\3\2\2\2\u040a\u03fe\3\2\2\2\u040a\u0400\3\2\2\2\u040b\u00a1"+ "\3\2\2\2\u040c\u040f\5\u008cG\2\u040d\u040f\5\u00aaV\2\u040e\u040c\3\2"+ "\2\2\u040e\u040d\3\2\2\2\u040f\u00a3\3\2\2\2\u0410\u0412\5\16\b\2\u0411"+ "\u0410\3\2\2\2\u0412\u0415\3\2\2\2\u0413\u0411\3\2\2\2\u0413\u0414\3\2"+ "\2\2\u0414\u0416\3\2\2\2\u0415\u0413\3\2\2\2\u0416\u0417\5N(\2\u0417\u0418"+ "\5F$\2\u0418\u0419\7L\2\2\u0419\u041a\5\u00b0Y\2\u041a\u00a5\3\2\2\2\u041b"+ "\u041c\5\u00aaV\2\u041c\u00a7\3\2\2\2\u041d\u041e\7=\2\2\u041e\u041f\5"+ "\u00b0Y\2\u041f\u0420\7>\2\2\u0420\u00a9\3\2\2\2\u0421\u0426\5\u00b0Y"+ "\2\u0422\u0423\7D\2\2\u0423\u0425\5\u00b0Y\2\u0424\u0422\3\2\2\2\u0425"+ "\u0428\3\2\2\2\u0426\u0424\3\2\2\2\u0426\u0427\3\2\2\2\u0427\u00ab\3\2"+ "\2\2\u0428\u0426\3\2\2\2\u0429\u042a\5\u00b0Y\2\u042a\u00ad\3\2\2\2\u042b"+ "\u042c\5\u00b0Y\2\u042c\u00af\3\2\2\2\u042d\u042e\bY\1\2\u042e\u043c\5"+ "\u00b2Z\2\u042f\u043c\5\u00b8]\2\u0430\u0431\7#\2\2\u0431\u043c\5\u00c0"+ "a\2\u0432\u0433\7=\2\2\u0433\u0434\5N(\2\u0434\u0435\7>\2\2\u0435\u0436"+ "\5\u00b0Y\26\u0436\u043c\3\2\2\2\u0437\u0438\t\7\2\2\u0438\u043c\5\u00b0"+ "Y\24\u0439\u043a\t\b\2\2\u043a\u043c\5\u00b0Y\23\u043b\u042d\3\2\2\2\u043b"+ "\u042f\3\2\2\2\u043b\u0430\3\2\2\2\u043b\u0432\3\2\2\2\u043b\u0437\3\2"+ "\2\2\u043b\u0439\3\2\2\2\u043c\u049e\3\2\2\2\u043d\u043e\f\22\2\2\u043e"+ "\u043f\t\t\2\2\u043f\u049d\5\u00b0Y\23\u0440\u0441\f\21\2\2\u0441\u0442"+ "\t\n\2\2\u0442\u049d\5\u00b0Y\22\u0443\u044b\f\20\2\2\u0444\u0445\7H\2"+ "\2\u0445\u044c\7H\2\2\u0446\u0447\7G\2\2\u0447\u0448\7G\2\2\u0448\u044c"+ "\7G\2\2\u0449\u044a\7G\2\2\u044a\u044c\7G\2\2\u044b\u0444\3\2\2\2\u044b"+ "\u0446\3\2\2\2\u044b\u0449\3\2\2\2\u044c\u044d\3\2\2\2\u044d\u049d\5\u00b0"+ "Y\21\u044e\u044f\f\17\2\2\u044f\u0450\t\13\2\2\u0450\u049d\5\u00b0Y\20"+ "\u0451\u0452\f\r\2\2\u0452\u0453\t\f\2\2\u0453\u049d\5\u00b0Y\16\u0454"+ "\u0455\f\f\2\2\u0455\u0456\7Y\2\2\u0456\u049d\5\u00b0Y\r\u0457\u0458\f"+ "\13\2\2\u0458\u0459\7[\2\2\u0459\u049d\5\u00b0Y\f\u045a\u045b\f\n\2\2"+ "\u045b\u045c\7Z\2\2\u045c\u049d\5\u00b0Y\13\u045d\u045e\f\t\2\2\u045e"+ "\u045f\7Q\2\2\u045f\u049d\5\u00b0Y\n\u0460\u0461\f\b\2\2\u0461\u0462\7"+ "R\2\2\u0462\u049d\5\u00b0Y\t\u0463\u0464\f\7\2\2\u0464\u0465\7\3\2\2\u0465"+ "\u049d\5\u00b0Y\b\u0466\u0467\f\4\2\2\u0467\u0468\7K\2\2\u0468\u0469\5"+ "\u00b0Y\2\u0469\u046a\7L\2\2\u046a\u046b\5\u00b0Y\5\u046b\u049d\3\2\2"+ "\2\u046c\u046d\f\3\2\2\u046d\u046e\t\r\2\2\u046e\u049d\5\u00b0Y\3\u046f"+ "\u0470\f\36\2\2\u0470\u0471\7E\2\2\u0471\u049d\7h\2\2\u0472\u0473\f\35"+ "\2\2\u0473\u0474\7E\2\2\u0474\u049d\7/\2\2\u0475\u0476\f\34\2\2\u0476"+ "\u0477\7E\2\2\u0477\u0479\7#\2\2\u0478\u047a\5\u00ccg\2\u0479\u0478\3"+ "\2\2\2\u0479\u047a\3\2\2\2\u047a\u047b\3\2\2\2\u047b\u049d\5\u00c4c\2"+ "\u047c\u047d\f\33\2\2\u047d\u047e\7E\2\2\u047e\u047f\7,\2\2\u047f\u049d"+ "\5\u00d2j\2\u0480\u0481\f\32\2\2\u0481\u0482\7E\2\2\u0482\u049d\5\u00ca"+ "f\2\u0483\u0484\f\31\2\2\u0484\u0485\7A\2\2\u0485\u0486\5\u00b0Y\2\u0486"+ "\u0487\7B\2\2\u0487\u049d\3\2\2\2\u0488\u0489\f\30\2\2\u0489\u048b\7="+ "\2\2\u048a\u048c\5\u00aaV\2\u048b\u048a\3\2\2\2\u048b\u048c\3\2\2\2\u048c"+ "\u048d\3\2\2\2\u048d\u049d\7>\2\2\u048e\u048f\f\25\2\2\u048f\u049d\t\16"+ "\2\2\u0490\u0491\f\16\2\2\u0491\u0492\7\36\2\2\u0492\u049d\5N(\2\u0493"+ "\u0494\f\6\2\2\u0494\u0496\7\3\2\2\u0495\u0497\5T+\2\u0496\u0495\3\2\2"+ "\2\u0496\u0497\3\2\2\2\u0497\u0498\3\2\2\2\u0498\u049d\7#\2\2\u0499\u049a"+ "\f\5\2\2\u049a\u049b\7\3\2\2\u049b\u049d\7#\2\2\u049c\u043d\3\2\2\2\u049c"+ "\u0440\3\2\2\2\u049c\u0443\3\2\2\2\u049c\u044e\3\2\2\2\u049c\u0451\3\2"+ "\2\2\u049c\u0454\3\2\2\2\u049c\u0457\3\2\2\2\u049c\u045a\3\2\2\2\u049c"+ "\u045d\3\2\2\2\u049c\u0460\3\2\2\2\u049c\u0463\3\2\2\2\u049c\u0466\3\2"+ "\2\2\u049c\u046c\3\2\2\2\u049c\u046f\3\2\2\2\u049c\u0472\3\2\2\2\u049c"+ "\u0475\3\2\2\2\u049c\u047c\3\2\2\2\u049c\u0480\3\2\2\2\u049c\u0483\3\2"+ "\2\2\u049c\u0488\3\2\2\2\u049c\u048e\3\2\2\2\u049c\u0490\3\2\2\2\u049c"+ "\u0493\3\2\2\2\u049c\u0499\3\2\2\2\u049d\u04a0\3\2\2\2\u049e\u049c\3\2"+ "\2\2\u049e\u049f\3\2\2\2\u049f\u00b1\3\2\2\2\u04a0\u049e\3\2\2\2\u04a1"+ "\u04a2\7=\2\2\u04a2\u04a3\5\u00b0Y\2\u04a3\u04a4\7>\2\2\u04a4\u04b8\3"+ "\2\2\2\u04a5\u04b8\7/\2\2\u04a6\u04b8\7,\2\2\u04a7\u04b8\5h\65\2\u04a8"+ "\u04b8\7h\2\2\u04a9\u04b8\5\u00b4[\2\u04aa\u04ab\5N(\2\u04ab\u04ac\7E"+ "\2\2\u04ac\u04ad\7\r\2\2\u04ad\u04b8\3\2\2\2\u04ae\u04af\7\64\2\2\u04af"+ "\u04b0\7E\2\2\u04b0\u04b8\7\r\2\2\u04b1\u04b5\5\u00ccg\2\u04b2\u04b6\5"+ "\u00d4k\2\u04b3\u04b4\7/\2\2\u04b4\u04b6\5\u00d6l\2\u04b5\u04b2\3\2\2"+ "\2\u04b5\u04b3\3\2\2\2\u04b6\u04b8\3\2\2\2\u04b7\u04a1\3\2\2\2\u04b7\u04a5"+ "\3\2\2\2\u04b7\u04a6\3\2\2\2\u04b7\u04a7\3\2\2\2\u04b7\u04a8\3\2\2\2\u04b7"+ "\u04a9\3\2\2\2\u04b7\u04aa\3\2\2\2\u04b7\u04ae\3\2\2\2\u04b7\u04b1\3\2"+ "\2\2\u04b8\u00b3\3\2\2\2\u04b9\u04ba\5R*\2\u04ba\u04bb\5\u00b6\\\2\u04bb"+ "\u04c8\3\2\2\2\u04bc\u04bd\5P)\2\u04bd\u04be\5\u00b6\\\2\u04be\u04c8\3"+ "\2\2\2\u04bf\u04c1\5j\66\2\u04c0\u04bf\3\2\2\2\u04c1\u04c4\3\2\2\2\u04c2"+ "\u04c0\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c5\3\2\2\2\u04c4\u04c2\3\2"+ "\2\2\u04c5\u04c6\7h\2\2\u04c6\u04c8\5\u00b6\\\2\u04c7\u04b9\3\2\2\2\u04c7"+ "\u04bc\3\2\2\2\u04c7\u04c2\3\2\2\2\u04c8\u00b5\3\2\2\2\u04c9\u04cb\5j"+ "\66\2\u04ca\u04c9\3\2\2\2\u04cb\u04ce\3\2\2\2\u04cc\u04ca\3\2\2\2\u04cc"+ "\u04cd\3\2\2\2\u04cd\u04cf\3\2\2\2\u04ce\u04cc\3\2\2\2\u04cf\u04d0\7A"+ "\2\2\u04d0\u04db\7B\2\2\u04d1\u04d3\5j\66\2\u04d2\u04d1\3\2\2\2\u04d3"+ "\u04d6\3\2\2\2\u04d4\u04d2\3\2\2\2\u04d4\u04d5\3\2\2\2\u04d5\u04d7\3\2"+ "\2\2\u04d6\u04d4\3\2\2\2\u04d7\u04d8\7A\2\2\u04d8\u04da\7B\2\2\u04d9\u04d4"+ "\3\2\2\2\u04da\u04dd\3\2\2\2\u04db\u04d9\3\2\2\2\u04db\u04dc\3\2\2\2\u04dc"+ "\u00b7\3\2\2\2\u04dd\u04db\3\2\2\2\u04de\u04df\5\u00ba^\2\u04df\u04e0"+ "\7\4\2\2\u04e0\u04e1\5\u00be`\2\u04e1\u00b9\3\2\2\2\u04e2\u04ed\7h\2\2"+ "\u04e3\u04e5\7=\2\2\u04e4\u04e6\5\\/\2\u04e5\u04e4\3\2\2\2\u04e5\u04e6"+ "\3\2\2\2\u04e6\u04e7\3\2\2\2\u04e7\u04ed\7>\2\2\u04e8\u04e9\7=\2\2\u04e9"+ "\u04ea\5\u00bc_\2\u04ea\u04eb\7>\2\2\u04eb\u04ed\3\2\2\2\u04ec\u04e2\3"+ "\2\2\2\u04ec\u04e3\3\2\2\2\u04ec\u04e8\3\2\2\2\u04ed\u00bb\3\2\2\2\u04ee"+ "\u04f3\7h\2\2\u04ef\u04f0\7D\2\2\u04f0\u04f2\7h\2\2\u04f1\u04ef\3\2\2"+ "\2\u04f2\u04f5\3\2\2\2\u04f3\u04f1\3\2\2\2\u04f3\u04f4\3\2\2\2\u04f4\u00bd"+ "\3\2\2\2\u04f5\u04f3\3\2\2\2\u04f6\u04f9\5\u00b0Y\2\u04f7\u04f9\5\u0086"+ "D\2\u04f8\u04f6\3\2\2\2\u04f8\u04f7\3\2\2\2\u04f9\u00bf\3\2\2\2\u04fa"+ "\u04fb\5\u00ccg\2\u04fb\u04fc\5\u00c2b\2\u04fc\u04fd\5\u00c8e\2\u04fd"+ "\u0504\3\2\2\2\u04fe\u0501\5\u00c2b\2\u04ff\u0502\5\u00c6d\2\u0500\u0502"+ "\5\u00c8e\2\u0501\u04ff\3\2\2\2\u0501\u0500\3\2\2\2\u0502\u0504\3\2\2"+ "\2\u0503\u04fa\3\2\2\2\u0503\u04fe\3\2\2\2\u0504\u00c1\3\2\2\2\u0505\u0507"+ "\7h\2\2\u0506\u0508\5\u00ceh\2\u0507\u0506\3\2\2\2\u0507\u0508\3\2\2\2"+ "\u0508\u0510\3\2\2\2\u0509\u050a\7E\2\2\u050a\u050c\7h\2\2\u050b\u050d"+ "\5\u00ceh\2\u050c\u050b\3\2\2\2\u050c\u050d\3\2\2\2\u050d\u050f\3\2\2"+ "\2\u050e\u0509\3\2\2\2\u050f\u0512\3\2\2\2\u0510\u050e\3\2\2\2\u0510\u0511"+ "\3\2\2\2\u0511\u0515\3\2\2\2\u0512\u0510\3\2\2\2\u0513\u0515\5R*\2\u0514"+ "\u0505\3\2\2\2\u0514\u0513\3\2\2\2\u0515\u00c3\3\2\2\2\u0516\u0518\7h"+ "\2\2\u0517\u0519\5\u00d0i\2\u0518\u0517\3\2\2\2\u0518\u0519\3\2\2\2\u0519"+ "\u051a\3\2\2\2\u051a\u051b\5\u00c8e\2\u051b\u00c5\3\2\2\2\u051c\u0538"+ "\7A\2\2\u051d\u0522\7B\2\2\u051e\u051f\7A\2\2\u051f\u0521\7B\2\2\u0520"+ "\u051e\3\2\2\2\u0521\u0524\3\2\2\2\u0522\u0520\3\2\2\2\u0522\u0523\3\2"+ "\2\2\u0523\u0525\3\2\2\2\u0524\u0522\3\2\2\2\u0525\u0539\5J&\2\u0526\u0527"+ "\5\u00b0Y\2\u0527\u052e\7B\2\2\u0528\u0529\7A\2\2\u0529\u052a\5\u00b0"+ "Y\2\u052a\u052b\7B\2\2\u052b\u052d\3\2\2\2\u052c\u0528\3\2\2\2\u052d\u0530"+ "\3\2\2\2\u052e\u052c\3\2\2\2\u052e\u052f\3\2\2\2\u052f\u0535\3\2\2\2\u0530"+ "\u052e\3\2\2\2\u0531\u0532\7A\2\2\u0532\u0534\7B\2\2\u0533\u0531\3\2\2"+ "\2\u0534\u0537\3\2\2\2\u0535\u0533\3\2\2\2\u0535\u0536\3\2\2\2\u0536\u0539"+ "\3\2\2\2\u0537\u0535\3\2\2\2\u0538\u051d\3\2\2\2\u0538\u0526\3\2\2\2\u0539"+ "\u00c7\3\2\2\2\u053a\u053c\5\u00d6l\2\u053b\u053d\5$\23\2\u053c\u053b"+ "\3\2\2\2\u053c\u053d\3\2\2\2\u053d\u00c9\3\2\2\2\u053e\u053f\5\u00ccg"+ "\2\u053f\u0540\5\u00d4k\2\u0540\u00cb\3\2\2\2\u0541\u0542\7H\2\2\u0542"+ "\u0543\5\"\22\2\u0543\u0544\7G\2\2\u0544\u00cd\3\2\2\2\u0545\u0546\7H"+ "\2\2\u0546\u0549\7G\2\2\u0547\u0549\5T+\2\u0548\u0545\3\2\2\2\u0548\u0547"+ "\3\2\2\2\u0549\u00cf\3\2\2\2\u054a\u054b\7H\2\2\u054b\u054e\7G\2\2\u054c"+ "\u054e\5\u00ccg\2\u054d\u054a\3\2\2\2\u054d\u054c\3\2\2\2\u054e\u00d1"+ "\3\2\2\2\u054f\u0556\5\u00d6l\2\u0550\u0551\7E\2\2\u0551\u0553\7h\2\2"+ "\u0552\u0554\5\u00d6l\2\u0553\u0552\3\2\2\2\u0553\u0554\3\2\2\2\u0554"+ "\u0556\3\2\2\2\u0555\u054f\3\2\2\2\u0555\u0550\3\2\2\2\u0556\u00d3\3\2"+ "\2\2\u0557\u0558\7,\2\2\u0558\u055c\5\u00d2j\2\u0559\u055a\7h\2\2\u055a"+ "\u055c\5\u00d6l\2\u055b\u0557\3\2\2\2\u055b\u0559\3\2\2\2\u055c\u00d5"+ "\3\2\2\2\u055d\u055f\7=\2\2\u055e\u0560\5\u00aaV\2\u055f\u055e\3\2\2\2"+ "\u055f\u0560\3\2\2\2\u0560\u0561\3\2\2\2\u0561\u0562\7>\2\2\u0562\u00d7"+ "\3\2\2\2\u00a3\u00d9\u00de\u00e4\u00ec\u00f5\u00fa\u0101\u0108\u010f\u0116"+ "\u011b\u011f\u0123\u0127\u012c\u0130\u0134\u013e\u0146\u014c\u0153\u015a"+ "\u015e\u0161\u0164\u016d\u0173\u0178\u017b\u0181\u0187\u018b\u0194\u019b"+ "\u01a4\u01ab\u01b1\u01b5\u01c0\u01c4\u01cc\u01d1\u01d5\u01de\u01ec\u01f1"+ "\u01fa\u0202\u020c\u0214\u021c\u0221\u0225\u022f\u0235\u023c\u0241\u0249"+ "\u024d\u024f\u025a\u0262\u0265\u0269\u026e\u0272\u027d\u0286\u0288\u028f"+ "\u0294\u029d\u02a2\u02a5\u02aa\u02b3\u02c3\u02cd\u02d0\u02d9\u02e3\u02eb"+ "\u02ee\u02f1\u02fe\u0306\u030b\u0313\u0317\u031b\u031f\u0321\u0325\u032b"+ "\u0336\u033e\u0346\u0351\u035a\u0371\u0374\u0377\u037f\u0383\u038b\u0391"+ "\u039c\u03a5\u03aa\u03b4\u03bb\u03c8\u03d1\u03da\u03e0\u03eb\u03f0\u03fc"+ "\u0400\u0404\u0408\u040a\u040e\u0413\u0426\u043b\u044b\u0479\u048b\u0496"+ "\u049c\u049e\u04b5\u04b7\u04c2\u04c7\u04cc\u04d4\u04db\u04e5\u04ec\u04f3"+ "\u04f8\u0501\u0503\u0507\u050c\u0510\u0514\u0518\u0522\u052e\u0535\u0538"+ "\u053c\u0548\u054d\u0553\u0555\u055b\u055f"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); } } }