diff --git a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java index e1cd3063..0f86d044 100644 --- a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java +++ b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java @@ -136,13 +136,13 @@ public class JavaTXCompiler { * Klassen in allen geparsten Sourcefiles kommen ins FC for(SourceFile sf : * this.sourceFiles.values()) { allClasses.addAll(getAvailableClasses(sf)); * allClasses.addAll(sf.getClasses()); } - * + * * final ConstraintSet cons = getConstraints(); - * + * * FiniteClosure finiteClosure = UnifyTypeFactory.generateFC(allClasses); * System.out.println(finiteClosure); ConstraintSet unifyCons = * UnifyTypeFactory.convert(cons); - * + * * TypeUnify unify = new TypeUnify(); Set> results = new * HashSet<>(); try { File logPath = new * File(System.getProperty("user.dir")+"/target/logFiles/"); logPath.mkdirs(); @@ -162,7 +162,7 @@ public class JavaTXCompiler { * HashSet::new))) .reduce(new HashSet(), (a,b) -> { a.addAll(b); return * a;}, (a,b) -> { a.addAll(b); return a;} ) ) .reduce(new HashSet(), * (a,b) -> { a.addAll(b); return a;} ); - * + * * Set constructorParaTypeVarNames = allClasses.stream().map(x -> * x.getConstructors().stream().map(y -> * y.getParameterList().getFormalparalist() .stream().filter(z -> z.getType() @@ -171,26 +171,26 @@ public class JavaTXCompiler { * HashSet::new))) .reduce(new HashSet(), (a,b) -> { a.addAll(b); return * a;}, (a,b) -> { a.addAll(b); return a;} ) ) .reduce(new HashSet(), * (a,b) -> { a.addAll(b); return a;} ); - * + * * Set paraTypeVarNames = methodParaTypeVarNames; * paraTypeVarNames.addAll(constructorParaTypeVarNames); - * + * * Set returnTypeVarNames = allClasses.stream().map(x -> * x.getMethods().stream().filter(y -> y.getReturnType() instanceof * TypePlaceholder) .map(z -> * ((TypePlaceholder)z.getReturnType()).getName()).collect(Collectors. * toCollection(HashSet::new))).reduce((a,b) -> { a.addAll(b); return a;} * ).get(); - * + * * Set fieldTypeVarNames = allClasses.stream().map(x -> * x.getFieldDecl().stream().filter(y -> y.getReturnType() instanceof * TypePlaceholder) .map(z -> * ((TypePlaceholder)z.getReturnType()).getName()).collect(Collectors. * toCollection(HashSet::new))).reduce((a,b) -> { a.addAll(b); return a;} * ).get(); - * + * * returnTypeVarNames.addAll(fieldTypeVarNames); - * + * * xConsSet = xConsSet.stream().map(x -> { //Hier muss ueberlegt werden, ob //1. * alle Argument- und Retuntyp-Variablen in allen UnifyPairs // mit * disableWildcardtable() werden. //2. alle Typvariablen mit Argument- oder @@ -225,7 +225,7 @@ public class JavaTXCompiler { * //Set> result = unify.unify(xConsSet, finiteClosure); * System.out.println("RESULT: " + result); logFile.write("RES: " + * result.toString()+"\n"); logFile.flush(); results.addAll(result); } - * + * * results = results.stream().map(x -> { Optional> res = new * RuleSet().subst(x.stream().map(y -> { if (y.getPairOp() == * PairOperator.SMALLERDOTWC) y.setPairOp(PairOperator.EQUALSDOT); return y; @@ -245,7 +245,7 @@ public class JavaTXCompiler { /** * Vererbt alle Variancen bei Paaren (a <. theta) oder (Theta <. a) wenn a eine * Variance !=0 hat auf alle Typvariablen in Theta. - * + * * */ /* @@ -257,7 +257,7 @@ public class JavaTXCompiler { * pair.add((PlaceholderType)x.getRhsType()); return pair; }).reduce(new * HashSet<>(), (a,b) -> { a.addAll(b); return a;} , (c,d) -> { c.addAll(d); * return c;}); - * + * * ArrayList phSetVariance = new ArrayList<>(phSet); * phSetVariance.removeIf(x -> (x.getVariance() == 0)); * while(!phSetVariance.isEmpty()) { PlaceholderType a = @@ -714,37 +714,6 @@ public class JavaTXCompiler { return ret; } - public synchronized void generateBytecodForFile(String path, /* HashMap classFiles,*/ SourceFile sf, - List typeinferenceResult, List genericResultsRet) throws IOException { - //genericResultsRet is empty; fuer die Rückgabe - try { - HashMap classFiles = new HashMap<>(); - - List genericResults = getGeneratedGenericResultsForAllSourceFiles(typeinferenceResult); - genericResultsRet.addAll(genericResults);//fuer Rueckgabe - BytecodeGen bytecodeGen = new BytecodeGen(classFiles,typeinferenceResult, genericResults, sf,path); - bytecodeGen.visit(sf); - this.writeClassFile(bytecodeGen.getClassFiles(), path); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - - public List getGeneratedGenericResultsForAllSourceFiles() - throws ClassNotFoundException { - List result = new ArrayList<>(); - for (File f : sourceFiles.keySet()) { - SourceFile sf = sourceFiles.get(f); - List typeinferenceResult = this.typeInference(); - GeneratedGenericsFinder sResFinder = new GeneratedGenericsFinder(sf, typeinferenceResult); - GenericGenratorResultForSourceFile simplifyResOfSF = sResFinder.findGeneratedGenerics(); - result.add(simplifyResOfSF); - } - return result; - } - public List getGeneratedGenericResultsForAllSourceFiles( List typeinferenceResult) throws ClassNotFoundException { List result = new ArrayList<>(); diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens new file mode 100644 index 00000000..da68d014 --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens @@ -0,0 +1,207 @@ +T__0=1 +ABSTRACT=2 +ASSERT=3 +BOOLEAN=4 +BREAK=5 +BYTE=6 +CASE=7 +CATCH=8 +CHAR=9 +CLASS=10 +CONST=11 +CONTINUE=12 +DEFAULT=13 +DO=14 +DOUBLE=15 +ELSE=16 +ENUM=17 +EXTENDS=18 +FINAL=19 +FINALLY=20 +FLOAT=21 +FOR=22 +IF=23 +GOTO=24 +IMPLEMENTS=25 +IMPORT=26 +INSTANCEOF=27 +INT=28 +INTERFACE=29 +LONG=30 +NATIVE=31 +NEW=32 +PACKAGE=33 +PRIVATE=34 +PROTECTED=35 +PUBLIC=36 +RETURN=37 +SHORT=38 +STATIC=39 +STRICTFP=40 +SUPER=41 +SWITCH=42 +SYNCHRONIZED=43 +THIS=44 +THROW=45 +THROWS=46 +TRANSIENT=47 +TRY=48 +VOID=49 +VOLATILE=50 +WHILE=51 +IntegerLiteral=52 +FloatingPointLiteral=53 +BooleanLiteral=54 +CharacterLiteral=55 +StringLiteral=56 +NullLiteral=57 +LPAREN=58 +RPAREN=59 +LBRACE=60 +RBRACE=61 +LBRACK=62 +RBRACK=63 +SEMI=64 +COMMA=65 +DOT=66 +ASSIGN=67 +GT=68 +LT=69 +BANG=70 +TILDE=71 +QUESTION=72 +COLON=73 +EQUAL=74 +LE=75 +GE=76 +NOTEQUAL=77 +AND=78 +OR=79 +INC=80 +DEC=81 +ADD=82 +SUB=83 +MUL=84 +DIV=85 +BITAND=86 +BITOR=87 +CARET=88 +MOD=89 +ARROW=90 +COLONCOLON=91 +ADD_ASSIGN=92 +SUB_ASSIGN=93 +MUL_ASSIGN=94 +DIV_ASSIGN=95 +AND_ASSIGN=96 +OR_ASSIGN=97 +XOR_ASSIGN=98 +MOD_ASSIGN=99 +LSHIFT_ASSIGN=100 +RSHIFT_ASSIGN=101 +URSHIFT_ASSIGN=102 +Identifier=103 +AT=104 +ELLIPSIS=105 +WS=106 +COMMENT=107 +LINE_COMMENT=108 +'var'=1 +'abstract'=2 +'assert'=3 +'boolean'=4 +'break'=5 +'byte'=6 +'case'=7 +'catch'=8 +'char'=9 +'class'=10 +'const'=11 +'continue'=12 +'default'=13 +'do'=14 +'double'=15 +'else'=16 +'enum'=17 +'extends'=18 +'final'=19 +'finally'=20 +'float'=21 +'for'=22 +'if'=23 +'goto'=24 +'implements'=25 +'import'=26 +'instanceof'=27 +'int'=28 +'interface'=29 +'long'=30 +'native'=31 +'new'=32 +'package'=33 +'private'=34 +'protected'=35 +'public'=36 +'return'=37 +'short'=38 +'static'=39 +'strictfp'=40 +'super'=41 +'switch'=42 +'synchronized'=43 +'this'=44 +'throw'=45 +'throws'=46 +'transient'=47 +'try'=48 +'void'=49 +'volatile'=50 +'while'=51 +'null'=57 +'('=58 +')'=59 +'{'=60 +'}'=61 +'['=62 +']'=63 +';'=64 +','=65 +'.'=66 +'='=67 +'>'=68 +'<'=69 +'!'=70 +'~'=71 +'?'=72 +':'=73 +'=='=74 +'<='=75 +'>='=76 +'!='=77 +'&&'=78 +'||'=79 +'++'=80 +'--'=81 +'+'=82 +'-'=83 +'*'=84 +'/'=85 +'&'=86 +'|'=87 +'^'=88 +'%'=89 +'->'=90 +'::'=91 +'+='=92 +'-='=93 +'*='=94 +'/='=95 +'&='=96 +'|='=97 +'^='=98 +'%='=99 +'<<='=100 +'>>='=101 +'>>>='=102 +'@'=104 +'...'=105 diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java new file mode 100644 index 00000000..1c94febc --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java @@ -0,0 +1,2895 @@ +// Generated from Java8.g4 by ANTLR 4.7 +package de.dhbwstuttgart.parser.antlr; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link Java8Listener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class Java8BaseListener implements Java8Listener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteral(Java8Parser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteral(Java8Parser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType(Java8Parser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType(Java8Parser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveType(Java8Parser.PrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveType(Java8Parser.PrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericType(Java8Parser.NumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericType(Java8Parser.NumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntegralType(Java8Parser.IntegralTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntegralType(Java8Parser.IntegralTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFloatingPointType(Java8Parser.FloatingPointTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFloatingPointType(Java8Parser.FloatingPointTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReferenceType(Java8Parser.ReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReferenceType(Java8Parser.ReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassType(Java8Parser.ClassTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassType(Java8Parser.ClassTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceType(Java8Parser.InterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceType(Java8Parser.InterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeVariable(Java8Parser.TypeVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeVariable(Java8Parser.TypeVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayType(Java8Parser.ArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayType(Java8Parser.ArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDims(Java8Parser.DimsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDims(Java8Parser.DimsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameter(Java8Parser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameter(Java8Parser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeBound(Java8Parser.TypeBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeBound(Java8Parser.TypeBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditionalBound(Java8Parser.AdditionalBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditionalBound(Java8Parser.AdditionalBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArguments(Java8Parser.TypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArguments(Java8Parser.TypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArgumentList(Java8Parser.TypeArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArgumentList(Java8Parser.TypeArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArgument(Java8Parser.TypeArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArgument(Java8Parser.TypeArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWildcard(Java8Parser.WildcardContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWildcard(Java8Parser.WildcardContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWildcardBounds(Java8Parser.WildcardBoundsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWildcardBounds(Java8Parser.WildcardBoundsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPackageName(Java8Parser.PackageNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPackageName(Java8Parser.PackageNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeName(Java8Parser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeName(Java8Parser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionName(Java8Parser.ExpressionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionName(Java8Parser.ExpressionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodName(Java8Parser.MethodNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodName(Java8Parser.MethodNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAmbiguousName(Java8Parser.AmbiguousNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAmbiguousName(Java8Parser.AmbiguousNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompilationUnit(Java8Parser.CompilationUnitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompilationUnit(Java8Parser.CompilationUnitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPackageDeclaration(Java8Parser.PackageDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPackageDeclaration(Java8Parser.PackageDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPackageModifier(Java8Parser.PackageModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPackageModifier(Java8Parser.PackageModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportDeclaration(Java8Parser.ImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportDeclaration(Java8Parser.ImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeDeclaration(Java8Parser.TypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeDeclaration(Java8Parser.TypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassDeclaration(Java8Parser.ClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassDeclaration(Java8Parser.ClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassModifier(Java8Parser.ClassModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassModifier(Java8Parser.ClassModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameters(Java8Parser.TypeParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameters(Java8Parser.TypeParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameterList(Java8Parser.TypeParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameterList(Java8Parser.TypeParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSuperclass(Java8Parser.SuperclassContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSuperclass(Java8Parser.SuperclassContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSuperinterfaces(Java8Parser.SuperinterfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSuperinterfaces(Java8Parser.SuperinterfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassBody(Java8Parser.ClassBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassBody(Java8Parser.ClassBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldDeclaration(Java8Parser.FieldDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldDeclaration(Java8Parser.FieldDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldModifier(Java8Parser.FieldModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldModifier(Java8Parser.FieldModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableInitializer(Java8Parser.VariableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableInitializer(Java8Parser.VariableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannType(Java8Parser.UnannTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannType(Java8Parser.UnannTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannClassType(Java8Parser.UnannClassTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannClassType(Java8Parser.UnannClassTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannArrayType(Java8Parser.UnannArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannArrayType(Java8Parser.UnannArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodDeclaration(Java8Parser.MethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodDeclaration(Java8Parser.MethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodModifier(Java8Parser.MethodModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodModifier(Java8Parser.MethodModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodHeader(Java8Parser.MethodHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodHeader(Java8Parser.MethodHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResult(Java8Parser.ResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResult(Java8Parser.ResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParameterList(Java8Parser.FormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParameterList(Java8Parser.FormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParameters(Java8Parser.FormalParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParameters(Java8Parser.FormalParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParameter(Java8Parser.FormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParameter(Java8Parser.FormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableModifier(Java8Parser.VariableModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableModifier(Java8Parser.VariableModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLastFormalParameter(Java8Parser.LastFormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLastFormalParameter(Java8Parser.LastFormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReceiverParameter(Java8Parser.ReceiverParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReceiverParameter(Java8Parser.ReceiverParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThrows_(Java8Parser.Throws_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThrows_(Java8Parser.Throws_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExceptionType(Java8Parser.ExceptionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExceptionType(Java8Parser.ExceptionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodBody(Java8Parser.MethodBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodBody(Java8Parser.MethodBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstanceInitializer(Java8Parser.InstanceInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstanceInitializer(Java8Parser.InstanceInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStaticInitializer(Java8Parser.StaticInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStaticInitializer(Java8Parser.StaticInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorModifier(Java8Parser.ConstructorModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorModifier(Java8Parser.ConstructorModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorBody(Java8Parser.ConstructorBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorBody(Java8Parser.ConstructorBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumDeclaration(Java8Parser.EnumDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumDeclaration(Java8Parser.EnumDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumBody(Java8Parser.EnumBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumBody(Java8Parser.EnumBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumConstantList(Java8Parser.EnumConstantListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumConstantList(Java8Parser.EnumConstantListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumConstant(Java8Parser.EnumConstantContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumConstant(Java8Parser.EnumConstantContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceModifier(Java8Parser.InterfaceModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceModifier(Java8Parser.InterfaceModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceBody(Java8Parser.InterfaceBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceBody(Java8Parser.InterfaceBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstantModifier(Java8Parser.ConstantModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstantModifier(Java8Parser.ConstantModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDefaultValue(Java8Parser.DefaultValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDefaultValue(Java8Parser.DefaultValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotation(Java8Parser.AnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotation(Java8Parser.AnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalAnnotation(Java8Parser.NormalAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalAnnotation(Java8Parser.NormalAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementValuePairList(Java8Parser.ElementValuePairListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValuePairList(Java8Parser.ElementValuePairListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementValuePair(Java8Parser.ElementValuePairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValuePair(Java8Parser.ElementValuePairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementValue(Java8Parser.ElementValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValue(Java8Parser.ElementValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementValueList(Java8Parser.ElementValueListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValueList(Java8Parser.ElementValueListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayInitializer(Java8Parser.ArrayInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayInitializer(Java8Parser.ArrayInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableInitializerList(Java8Parser.VariableInitializerListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableInitializerList(Java8Parser.VariableInitializerListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlock(Java8Parser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlock(Java8Parser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlockStatements(Java8Parser.BlockStatementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlockStatements(Java8Parser.BlockStatementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlockStatement(Java8Parser.BlockStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlockStatement(Java8Parser.BlockStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatement(Java8Parser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatement(Java8Parser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyStatement(Java8Parser.EmptyStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyStatement(Java8Parser.EmptyStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledStatement(Java8Parser.LabeledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledStatement(Java8Parser.LabeledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionStatement(Java8Parser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionStatement(Java8Parser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementExpression(Java8Parser.StatementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementExpression(Java8Parser.StatementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfThenStatement(Java8Parser.IfThenStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfThenStatement(Java8Parser.IfThenStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssertStatement(Java8Parser.AssertStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssertStatement(Java8Parser.AssertStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchStatement(Java8Parser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchStatement(Java8Parser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchBlock(Java8Parser.SwitchBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchBlock(Java8Parser.SwitchBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabels(Java8Parser.SwitchLabelsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabels(Java8Parser.SwitchLabelsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabel(Java8Parser.SwitchLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabel(Java8Parser.SwitchLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumConstantName(Java8Parser.EnumConstantNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumConstantName(Java8Parser.EnumConstantNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhileStatement(Java8Parser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhileStatement(Java8Parser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDoStatement(Java8Parser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDoStatement(Java8Parser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForStatement(Java8Parser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForStatement(Java8Parser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBasicForStatement(Java8Parser.BasicForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBasicForStatement(Java8Parser.BasicForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForInit(Java8Parser.ForInitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForInit(Java8Parser.ForInitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForUpdate(Java8Parser.ForUpdateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForUpdate(Java8Parser.ForUpdateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementExpressionList(Java8Parser.StatementExpressionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementExpressionList(Java8Parser.StatementExpressionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBreakStatement(Java8Parser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBreakStatement(Java8Parser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterContinueStatement(Java8Parser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitContinueStatement(Java8Parser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnStatement(Java8Parser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnStatement(Java8Parser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThrowStatement(Java8Parser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThrowStatement(Java8Parser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTryStatement(Java8Parser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTryStatement(Java8Parser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatches(Java8Parser.CatchesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatches(Java8Parser.CatchesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatchClause(Java8Parser.CatchClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatchClause(Java8Parser.CatchClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatchType(Java8Parser.CatchTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatchType(Java8Parser.CatchTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFinally_(Java8Parser.Finally_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinally_(Java8Parser.Finally_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResourceSpecification(Java8Parser.ResourceSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResourceSpecification(Java8Parser.ResourceSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResourceList(Java8Parser.ResourceListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResourceList(Java8Parser.ResourceListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResource(Java8Parser.ResourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResource(Java8Parser.ResourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimary(Java8Parser.PrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimary(Java8Parser.PrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldAccess(Java8Parser.FieldAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldAccess(Java8Parser.FieldAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayAccess(Java8Parser.ArrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayAccess(Java8Parser.ArrayAccessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodInvocation(Java8Parser.MethodInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodInvocation(Java8Parser.MethodInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgumentList(Java8Parser.ArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgumentList(Java8Parser.ArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodReference(Java8Parser.MethodReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodReference(Java8Parser.MethodReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDimExprs(Java8Parser.DimExprsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDimExprs(Java8Parser.DimExprsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDimExpr(Java8Parser.DimExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDimExpr(Java8Parser.DimExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstantExpression(Java8Parser.ConstantExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstantExpression(Java8Parser.ConstantExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(Java8Parser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(Java8Parser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambdaExpression(Java8Parser.LambdaExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaExpression(Java8Parser.LambdaExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambdaParameters(Java8Parser.LambdaParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaParameters(Java8Parser.LambdaParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambdaBody(Java8Parser.LambdaBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaBody(Java8Parser.LambdaBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignment(Java8Parser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignment(Java8Parser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLeftHandSide(Java8Parser.LeftHandSideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLeftHandSide(Java8Parser.LeftHandSideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalExpression(Java8Parser.ConditionalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalExpression(Java8Parser.ConditionalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAndExpression(Java8Parser.AndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAndExpression(Java8Parser.AndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEqualityExpression(Java8Parser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEqualityExpression(Java8Parser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationalExpression(Java8Parser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationalExpression(Java8Parser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShiftExpression(Java8Parser.ShiftExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShiftExpression(Java8Parser.ShiftExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnaryExpression(Java8Parser.UnaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnaryExpression(Java8Parser.UnaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostfixExpression(Java8Parser.PostfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostfixExpression(Java8Parser.PostfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastExpression(Java8Parser.CastExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastExpression(Java8Parser.CastExpressionContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java new file mode 100644 index 00000000..9c2e22c4 --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java @@ -0,0 +1,593 @@ +// Generated from Java8.g4 by ANTLR 4.7 +package de.dhbwstuttgart.parser.antlr; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class Java8Lexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, + CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, + ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, + IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, + LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, + RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, + THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, + WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, + CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, + LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, + ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, + LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, + MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, + ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, + OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, + URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, + LINE_COMMENT=108; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "T__0", "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", "DecimalIntegerLiteral", + "HexIntegerLiteral", "OctalIntegerLiteral", "BinaryIntegerLiteral", "IntegerTypeSuffix", + "DecimalNumeral", "Digits", "Digit", "NonZeroDigit", "DigitsAndUnderscores", + "DigitOrUnderscore", "Underscores", "HexNumeral", "HexDigits", "HexDigit", + "HexDigitsAndUnderscores", "HexDigitOrUnderscore", "OctalNumeral", "OctalDigits", + "OctalDigit", "OctalDigitsAndUnderscores", "OctalDigitOrUnderscore", "BinaryNumeral", + "BinaryDigits", "BinaryDigit", "BinaryDigitsAndUnderscores", "BinaryDigitOrUnderscore", + "FloatingPointLiteral", "DecimalFloatingPointLiteral", "ExponentPart", + "ExponentIndicator", "SignedInteger", "Sign", "FloatTypeSuffix", "HexadecimalFloatingPointLiteral", + "HexSignificand", "BinaryExponent", "BinaryExponentIndicator", "BooleanLiteral", + "CharacterLiteral", "SingleCharacter", "StringLiteral", "StringCharacters", + "StringCharacter", "EscapeSequence", "OctalEscape", "ZeroToThree", "UnicodeEscape", + "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", "ARROW", "COLONCOLON", + "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", + "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", + "URSHIFT_ASSIGN", "Identifier", "JavaLetter", "JavaLetterOrDigit", "AT", + "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'var'", "'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, "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", "ARROW", "COLONCOLON", + "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] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public Java8Lexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Java8.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + @Override + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 147: + return JavaLetter_sempred((RuleContext)_localctx, predIndex); + case 148: + return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex); + } + return true; + } + private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return Character.isJavaIdentifierStart(_input.LA(-1)); + case 1: + return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); + } + return true; + } + private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return Character.isJavaIdentifierPart(_input.LA(-1)); + case 3: + return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); + } + return true; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2n\u044e\b\1\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\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ + "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ + "\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3"+ + "\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\7"+ + "\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3"+ + "\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3"+ + "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16"+ + "\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21"+ + "\3\21\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25"+ + "\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31"+ + "\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32"+ + "\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34"+ + "\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36"+ + "\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3"+ + " \3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#"+ + "\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&"+ + "\3&\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)"+ + "\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,"+ + "\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/"+ + "\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61"+ + "\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63"+ + "\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\5\65\u0293\n\65\3\66"+ + "\3\66\5\66\u0297\n\66\3\67\3\67\5\67\u029b\n\67\38\38\58\u029f\n8\39\3"+ + "9\59\u02a3\n9\3:\3:\3;\3;\3;\5;\u02aa\n;\3;\3;\3;\5;\u02af\n;\5;\u02b1"+ + "\n;\3<\3<\5<\u02b5\n<\3<\5<\u02b8\n<\3=\3=\5=\u02bc\n=\3>\3>\3?\6?\u02c1"+ + "\n?\r?\16?\u02c2\3@\3@\5@\u02c7\n@\3A\6A\u02ca\nA\rA\16A\u02cb\3B\3B\3"+ + "B\3B\3C\3C\5C\u02d4\nC\3C\5C\u02d7\nC\3D\3D\3E\6E\u02dc\nE\rE\16E\u02dd"+ + "\3F\3F\5F\u02e2\nF\3G\3G\5G\u02e6\nG\3G\3G\3H\3H\5H\u02ec\nH\3H\5H\u02ef"+ + "\nH\3I\3I\3J\6J\u02f4\nJ\rJ\16J\u02f5\3K\3K\5K\u02fa\nK\3L\3L\3L\3L\3"+ + "M\3M\5M\u0302\nM\3M\5M\u0305\nM\3N\3N\3O\6O\u030a\nO\rO\16O\u030b\3P\3"+ + "P\5P\u0310\nP\3Q\3Q\5Q\u0314\nQ\3R\3R\3R\5R\u0319\nR\3R\5R\u031c\nR\3"+ + "R\5R\u031f\nR\3R\3R\3R\5R\u0324\nR\3R\5R\u0327\nR\3R\3R\3R\5R\u032c\n"+ + "R\3R\3R\3R\5R\u0331\nR\3S\3S\3S\3T\3T\3U\5U\u0339\nU\3U\3U\3V\3V\3W\3"+ + "W\3X\3X\3X\5X\u0344\nX\3Y\3Y\5Y\u0348\nY\3Y\3Y\3Y\5Y\u034d\nY\3Y\3Y\5"+ + "Y\u0351\nY\3Z\3Z\3Z\3[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\5\\\u0361"+ + "\n\\\3]\3]\3]\3]\3]\3]\3]\3]\5]\u036b\n]\3^\3^\3_\3_\5_\u0371\n_\3_\3"+ + "_\3`\6`\u0376\n`\r`\16`\u0377\3a\3a\5a\u037c\na\3b\3b\3b\3b\5b\u0382\n"+ + "b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\5c\u038f\nc\3d\3d\3e\3e\3e\3e\3e\3"+ + "e\3e\3f\3f\3f\3f\3f\3g\3g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3m\3n\3n\3"+ + "o\3o\3p\3p\3q\3q\3r\3r\3s\3s\3t\3t\3u\3u\3v\3v\3w\3w\3w\3x\3x\3x\3y\3"+ + "y\3y\3z\3z\3z\3{\3{\3{\3|\3|\3|\3}\3}\3}\3~\3~\3~\3\177\3\177\3\u0080"+ + "\3\u0080\3\u0081\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084\3\u0084"+ + "\3\u0085\3\u0085\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088"+ + "\3\u0088\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b"+ + "\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e"+ + "\3\u008e\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091"+ + "\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093"+ + "\3\u0093\3\u0093\3\u0094\3\u0094\7\u0094\u0414\n\u0094\f\u0094\16\u0094"+ + "\u0417\13\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095"+ + "\u041f\n\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\5\u0096"+ + "\u0427\n\u0096\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099"+ + "\6\u0099\u0430\n\u0099\r\u0099\16\u0099\u0431\3\u0099\3\u0099\3\u009a"+ + "\3\u009a\3\u009a\3\u009a\7\u009a\u043a\n\u009a\f\u009a\16\u009a\u043d"+ + "\13\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b"+ + "\3\u009b\7\u009b\u0448\n\u009b\f\u009b\16\u009b\u044b\13\u009b\3\u009b"+ + "\3\u009b\3\u043b\2\u009c\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+ + "\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+ + "\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+ + "c\63e\64g\65i\66k\2m\2o\2q\2s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083\2\u0085"+ + "\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095\2\u0097"+ + "\2\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\67\u00a3\2\u00a5\2\u00a7\2\u00a9"+ + "\2\u00ab\2\u00ad\2\u00af\2\u00b1\2\u00b3\2\u00b5\2\u00b78\u00b99\u00bb"+ + "\2\u00bd:\u00bf\2\u00c1\2\u00c3\2\u00c5\2\u00c7\2\u00c9\2\u00cb;\u00cd"+ + "<\u00cf=\u00d1>\u00d3?\u00d5@\u00d7A\u00d9B\u00dbC\u00ddD\u00dfE\u00e1"+ + "F\u00e3G\u00e5H\u00e7I\u00e9J\u00ebK\u00edL\u00efM\u00f1N\u00f3O\u00f5"+ + "P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ffU\u0101V\u0103W\u0105X\u0107Y\u0109"+ + "Z\u010b[\u010d\\\u010f]\u0111^\u0113_\u0115`\u0117a\u0119b\u011bc\u011d"+ + "d\u011fe\u0121f\u0123g\u0125h\u0127i\u0129\2\u012b\2\u012dj\u012fk\u0131"+ + "l\u0133m\u0135n\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5\2\62;CHch\3\2\629\4\2"+ + "DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2RRrr\4\2))^^\4\2$$^^\n\2"+ + "$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0081\ud802\udc01\3\2\ud802"+ + "\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\4\2\f\f\17"+ + "\17\2\u045c\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2"+ + "\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27"+ + "\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2"+ + "\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2"+ + "\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2"+ + "\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2"+ + "\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S"+ + "\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2"+ + "\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2\u00a1\3"+ + "\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bd\3\2\2\2\2\u00cb\3\2\2\2"+ + "\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5"+ + "\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2"+ + "\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7"+ + "\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2"+ + "\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9"+ + "\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2"+ + "\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b"+ + "\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2"+ + "\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d"+ + "\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2"+ + "\2\2\u0127\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133"+ + "\3\2\2\2\2\u0135\3\2\2\2\3\u0137\3\2\2\2\5\u013b\3\2\2\2\7\u0144\3\2\2"+ + "\2\t\u014b\3\2\2\2\13\u0153\3\2\2\2\r\u0159\3\2\2\2\17\u015e\3\2\2\2\21"+ + "\u0163\3\2\2\2\23\u0169\3\2\2\2\25\u016e\3\2\2\2\27\u0174\3\2\2\2\31\u017a"+ + "\3\2\2\2\33\u0183\3\2\2\2\35\u018b\3\2\2\2\37\u018e\3\2\2\2!\u0195\3\2"+ + "\2\2#\u019a\3\2\2\2%\u019f\3\2\2\2\'\u01a7\3\2\2\2)\u01ad\3\2\2\2+\u01b5"+ + "\3\2\2\2-\u01bb\3\2\2\2/\u01bf\3\2\2\2\61\u01c2\3\2\2\2\63\u01c7\3\2\2"+ + "\2\65\u01d2\3\2\2\2\67\u01d9\3\2\2\29\u01e4\3\2\2\2;\u01e8\3\2\2\2=\u01f2"+ + "\3\2\2\2?\u01f7\3\2\2\2A\u01fe\3\2\2\2C\u0202\3\2\2\2E\u020a\3\2\2\2G"+ + "\u0212\3\2\2\2I\u021c\3\2\2\2K\u0223\3\2\2\2M\u022a\3\2\2\2O\u0230\3\2"+ + "\2\2Q\u0237\3\2\2\2S\u0240\3\2\2\2U\u0246\3\2\2\2W\u024d\3\2\2\2Y\u025a"+ + "\3\2\2\2[\u025f\3\2\2\2]\u0265\3\2\2\2_\u026c\3\2\2\2a\u0276\3\2\2\2c"+ + "\u027a\3\2\2\2e\u027f\3\2\2\2g\u0288\3\2\2\2i\u0292\3\2\2\2k\u0294\3\2"+ + "\2\2m\u0298\3\2\2\2o\u029c\3\2\2\2q\u02a0\3\2\2\2s\u02a4\3\2\2\2u\u02b0"+ + "\3\2\2\2w\u02b2\3\2\2\2y\u02bb\3\2\2\2{\u02bd\3\2\2\2}\u02c0\3\2\2\2\177"+ + "\u02c6\3\2\2\2\u0081\u02c9\3\2\2\2\u0083\u02cd\3\2\2\2\u0085\u02d1\3\2"+ + "\2\2\u0087\u02d8\3\2\2\2\u0089\u02db\3\2\2\2\u008b\u02e1\3\2\2\2\u008d"+ + "\u02e3\3\2\2\2\u008f\u02e9\3\2\2\2\u0091\u02f0\3\2\2\2\u0093\u02f3\3\2"+ + "\2\2\u0095\u02f9\3\2\2\2\u0097\u02fb\3\2\2\2\u0099\u02ff\3\2\2\2\u009b"+ + "\u0306\3\2\2\2\u009d\u0309\3\2\2\2\u009f\u030f\3\2\2\2\u00a1\u0313\3\2"+ + "\2\2\u00a3\u0330\3\2\2\2\u00a5\u0332\3\2\2\2\u00a7\u0335\3\2\2\2\u00a9"+ + "\u0338\3\2\2\2\u00ab\u033c\3\2\2\2\u00ad\u033e\3\2\2\2\u00af\u0340\3\2"+ + "\2\2\u00b1\u0350\3\2\2\2\u00b3\u0352\3\2\2\2\u00b5\u0355\3\2\2\2\u00b7"+ + "\u0360\3\2\2\2\u00b9\u036a\3\2\2\2\u00bb\u036c\3\2\2\2\u00bd\u036e\3\2"+ + "\2\2\u00bf\u0375\3\2\2\2\u00c1\u037b\3\2\2\2\u00c3\u0381\3\2\2\2\u00c5"+ + "\u038e\3\2\2\2\u00c7\u0390\3\2\2\2\u00c9\u0392\3\2\2\2\u00cb\u0399\3\2"+ + "\2\2\u00cd\u039e\3\2\2\2\u00cf\u03a0\3\2\2\2\u00d1\u03a2\3\2\2\2\u00d3"+ + "\u03a4\3\2\2\2\u00d5\u03a6\3\2\2\2\u00d7\u03a8\3\2\2\2\u00d9\u03aa\3\2"+ + "\2\2\u00db\u03ac\3\2\2\2\u00dd\u03ae\3\2\2\2\u00df\u03b0\3\2\2\2\u00e1"+ + "\u03b2\3\2\2\2\u00e3\u03b4\3\2\2\2\u00e5\u03b6\3\2\2\2\u00e7\u03b8\3\2"+ + "\2\2\u00e9\u03ba\3\2\2\2\u00eb\u03bc\3\2\2\2\u00ed\u03be\3\2\2\2\u00ef"+ + "\u03c1\3\2\2\2\u00f1\u03c4\3\2\2\2\u00f3\u03c7\3\2\2\2\u00f5\u03ca\3\2"+ + "\2\2\u00f7\u03cd\3\2\2\2\u00f9\u03d0\3\2\2\2\u00fb\u03d3\3\2\2\2\u00fd"+ + "\u03d6\3\2\2\2\u00ff\u03d8\3\2\2\2\u0101\u03da\3\2\2\2\u0103\u03dc\3\2"+ + "\2\2\u0105\u03de\3\2\2\2\u0107\u03e0\3\2\2\2\u0109\u03e2\3\2\2\2\u010b"+ + "\u03e4\3\2\2\2\u010d\u03e6\3\2\2\2\u010f\u03e9\3\2\2\2\u0111\u03ec\3\2"+ + "\2\2\u0113\u03ef\3\2\2\2\u0115\u03f2\3\2\2\2\u0117\u03f5\3\2\2\2\u0119"+ + "\u03f8\3\2\2\2\u011b\u03fb\3\2\2\2\u011d\u03fe\3\2\2\2\u011f\u0401\3\2"+ + "\2\2\u0121\u0404\3\2\2\2\u0123\u0408\3\2\2\2\u0125\u040c\3\2\2\2\u0127"+ + "\u0411\3\2\2\2\u0129\u041e\3\2\2\2\u012b\u0426\3\2\2\2\u012d\u0428\3\2"+ + "\2\2\u012f\u042a\3\2\2\2\u0131\u042f\3\2\2\2\u0133\u0435\3\2\2\2\u0135"+ + "\u0443\3\2\2\2\u0137\u0138\7x\2\2\u0138\u0139\7c\2\2\u0139\u013a\7t\2"+ + "\2\u013a\4\3\2\2\2\u013b\u013c\7c\2\2\u013c\u013d\7d\2\2\u013d\u013e\7"+ + "u\2\2\u013e\u013f\7v\2\2\u013f\u0140\7t\2\2\u0140\u0141\7c\2\2\u0141\u0142"+ + "\7e\2\2\u0142\u0143\7v\2\2\u0143\6\3\2\2\2\u0144\u0145\7c\2\2\u0145\u0146"+ + "\7u\2\2\u0146\u0147\7u\2\2\u0147\u0148\7g\2\2\u0148\u0149\7t\2\2\u0149"+ + "\u014a\7v\2\2\u014a\b\3\2\2\2\u014b\u014c\7d\2\2\u014c\u014d\7q\2\2\u014d"+ + "\u014e\7q\2\2\u014e\u014f\7n\2\2\u014f\u0150\7g\2\2\u0150\u0151\7c\2\2"+ + "\u0151\u0152\7p\2\2\u0152\n\3\2\2\2\u0153\u0154\7d\2\2\u0154\u0155\7t"+ + "\2\2\u0155\u0156\7g\2\2\u0156\u0157\7c\2\2\u0157\u0158\7m\2\2\u0158\f"+ + "\3\2\2\2\u0159\u015a\7d\2\2\u015a\u015b\7{\2\2\u015b\u015c\7v\2\2\u015c"+ + "\u015d\7g\2\2\u015d\16\3\2\2\2\u015e\u015f\7e\2\2\u015f\u0160\7c\2\2\u0160"+ + "\u0161\7u\2\2\u0161\u0162\7g\2\2\u0162\20\3\2\2\2\u0163\u0164\7e\2\2\u0164"+ + "\u0165\7c\2\2\u0165\u0166\7v\2\2\u0166\u0167\7e\2\2\u0167\u0168\7j\2\2"+ + "\u0168\22\3\2\2\2\u0169\u016a\7e\2\2\u016a\u016b\7j\2\2\u016b\u016c\7"+ + "c\2\2\u016c\u016d\7t\2\2\u016d\24\3\2\2\2\u016e\u016f\7e\2\2\u016f\u0170"+ + "\7n\2\2\u0170\u0171\7c\2\2\u0171\u0172\7u\2\2\u0172\u0173\7u\2\2\u0173"+ + "\26\3\2\2\2\u0174\u0175\7e\2\2\u0175\u0176\7q\2\2\u0176\u0177\7p\2\2\u0177"+ + "\u0178\7u\2\2\u0178\u0179\7v\2\2\u0179\30\3\2\2\2\u017a\u017b\7e\2\2\u017b"+ + "\u017c\7q\2\2\u017c\u017d\7p\2\2\u017d\u017e\7v\2\2\u017e\u017f\7k\2\2"+ + "\u017f\u0180\7p\2\2\u0180\u0181\7w\2\2\u0181\u0182\7g\2\2\u0182\32\3\2"+ + "\2\2\u0183\u0184\7f\2\2\u0184\u0185\7g\2\2\u0185\u0186\7h\2\2\u0186\u0187"+ + "\7c\2\2\u0187\u0188\7w\2\2\u0188\u0189\7n\2\2\u0189\u018a\7v\2\2\u018a"+ + "\34\3\2\2\2\u018b\u018c\7f\2\2\u018c\u018d\7q\2\2\u018d\36\3\2\2\2\u018e"+ + "\u018f\7f\2\2\u018f\u0190\7q\2\2\u0190\u0191\7w\2\2\u0191\u0192\7d\2\2"+ + "\u0192\u0193\7n\2\2\u0193\u0194\7g\2\2\u0194 \3\2\2\2\u0195\u0196\7g\2"+ + "\2\u0196\u0197\7n\2\2\u0197\u0198\7u\2\2\u0198\u0199\7g\2\2\u0199\"\3"+ + "\2\2\2\u019a\u019b\7g\2\2\u019b\u019c\7p\2\2\u019c\u019d\7w\2\2\u019d"+ + "\u019e\7o\2\2\u019e$\3\2\2\2\u019f\u01a0\7g\2\2\u01a0\u01a1\7z\2\2\u01a1"+ + "\u01a2\7v\2\2\u01a2\u01a3\7g\2\2\u01a3\u01a4\7p\2\2\u01a4\u01a5\7f\2\2"+ + "\u01a5\u01a6\7u\2\2\u01a6&\3\2\2\2\u01a7\u01a8\7h\2\2\u01a8\u01a9\7k\2"+ + "\2\u01a9\u01aa\7p\2\2\u01aa\u01ab\7c\2\2\u01ab\u01ac\7n\2\2\u01ac(\3\2"+ + "\2\2\u01ad\u01ae\7h\2\2\u01ae\u01af\7k\2\2\u01af\u01b0\7p\2\2\u01b0\u01b1"+ + "\7c\2\2\u01b1\u01b2\7n\2\2\u01b2\u01b3\7n\2\2\u01b3\u01b4\7{\2\2\u01b4"+ + "*\3\2\2\2\u01b5\u01b6\7h\2\2\u01b6\u01b7\7n\2\2\u01b7\u01b8\7q\2\2\u01b8"+ + "\u01b9\7c\2\2\u01b9\u01ba\7v\2\2\u01ba,\3\2\2\2\u01bb\u01bc\7h\2\2\u01bc"+ + "\u01bd\7q\2\2\u01bd\u01be\7t\2\2\u01be.\3\2\2\2\u01bf\u01c0\7k\2\2\u01c0"+ + "\u01c1\7h\2\2\u01c1\60\3\2\2\2\u01c2\u01c3\7i\2\2\u01c3\u01c4\7q\2\2\u01c4"+ + "\u01c5\7v\2\2\u01c5\u01c6\7q\2\2\u01c6\62\3\2\2\2\u01c7\u01c8\7k\2\2\u01c8"+ + "\u01c9\7o\2\2\u01c9\u01ca\7r\2\2\u01ca\u01cb\7n\2\2\u01cb\u01cc\7g\2\2"+ + "\u01cc\u01cd\7o\2\2\u01cd\u01ce\7g\2\2\u01ce\u01cf\7p\2\2\u01cf\u01d0"+ + "\7v\2\2\u01d0\u01d1\7u\2\2\u01d1\64\3\2\2\2\u01d2\u01d3\7k\2\2\u01d3\u01d4"+ + "\7o\2\2\u01d4\u01d5\7r\2\2\u01d5\u01d6\7q\2\2\u01d6\u01d7\7t\2\2\u01d7"+ + "\u01d8\7v\2\2\u01d8\66\3\2\2\2\u01d9\u01da\7k\2\2\u01da\u01db\7p\2\2\u01db"+ + "\u01dc\7u\2\2\u01dc\u01dd\7v\2\2\u01dd\u01de\7c\2\2\u01de\u01df\7p\2\2"+ + "\u01df\u01e0\7e\2\2\u01e0\u01e1\7g\2\2\u01e1\u01e2\7q\2\2\u01e2\u01e3"+ + "\7h\2\2\u01e38\3\2\2\2\u01e4\u01e5\7k\2\2\u01e5\u01e6\7p\2\2\u01e6\u01e7"+ + "\7v\2\2\u01e7:\3\2\2\2\u01e8\u01e9\7k\2\2\u01e9\u01ea\7p\2\2\u01ea\u01eb"+ + "\7v\2\2\u01eb\u01ec\7g\2\2\u01ec\u01ed\7t\2\2\u01ed\u01ee\7h\2\2\u01ee"+ + "\u01ef\7c\2\2\u01ef\u01f0\7e\2\2\u01f0\u01f1\7g\2\2\u01f1<\3\2\2\2\u01f2"+ + "\u01f3\7n\2\2\u01f3\u01f4\7q\2\2\u01f4\u01f5\7p\2\2\u01f5\u01f6\7i\2\2"+ + "\u01f6>\3\2\2\2\u01f7\u01f8\7p\2\2\u01f8\u01f9\7c\2\2\u01f9\u01fa\7v\2"+ + "\2\u01fa\u01fb\7k\2\2\u01fb\u01fc\7x\2\2\u01fc\u01fd\7g\2\2\u01fd@\3\2"+ + "\2\2\u01fe\u01ff\7p\2\2\u01ff\u0200\7g\2\2\u0200\u0201\7y\2\2\u0201B\3"+ + "\2\2\2\u0202\u0203\7r\2\2\u0203\u0204\7c\2\2\u0204\u0205\7e\2\2\u0205"+ + "\u0206\7m\2\2\u0206\u0207\7c\2\2\u0207\u0208\7i\2\2\u0208\u0209\7g\2\2"+ + "\u0209D\3\2\2\2\u020a\u020b\7r\2\2\u020b\u020c\7t\2\2\u020c\u020d\7k\2"+ + "\2\u020d\u020e\7x\2\2\u020e\u020f\7c\2\2\u020f\u0210\7v\2\2\u0210\u0211"+ + "\7g\2\2\u0211F\3\2\2\2\u0212\u0213\7r\2\2\u0213\u0214\7t\2\2\u0214\u0215"+ + "\7q\2\2\u0215\u0216\7v\2\2\u0216\u0217\7g\2\2\u0217\u0218\7e\2\2\u0218"+ + "\u0219\7v\2\2\u0219\u021a\7g\2\2\u021a\u021b\7f\2\2\u021bH\3\2\2\2\u021c"+ + "\u021d\7r\2\2\u021d\u021e\7w\2\2\u021e\u021f\7d\2\2\u021f\u0220\7n\2\2"+ + "\u0220\u0221\7k\2\2\u0221\u0222\7e\2\2\u0222J\3\2\2\2\u0223\u0224\7t\2"+ + "\2\u0224\u0225\7g\2\2\u0225\u0226\7v\2\2\u0226\u0227\7w\2\2\u0227\u0228"+ + "\7t\2\2\u0228\u0229\7p\2\2\u0229L\3\2\2\2\u022a\u022b\7u\2\2\u022b\u022c"+ + "\7j\2\2\u022c\u022d\7q\2\2\u022d\u022e\7t\2\2\u022e\u022f\7v\2\2\u022f"+ + "N\3\2\2\2\u0230\u0231\7u\2\2\u0231\u0232\7v\2\2\u0232\u0233\7c\2\2\u0233"+ + "\u0234\7v\2\2\u0234\u0235\7k\2\2\u0235\u0236\7e\2\2\u0236P\3\2\2\2\u0237"+ + "\u0238\7u\2\2\u0238\u0239\7v\2\2\u0239\u023a\7t\2\2\u023a\u023b\7k\2\2"+ + "\u023b\u023c\7e\2\2\u023c\u023d\7v\2\2\u023d\u023e\7h\2\2\u023e\u023f"+ + "\7r\2\2\u023fR\3\2\2\2\u0240\u0241\7u\2\2\u0241\u0242\7w\2\2\u0242\u0243"+ + "\7r\2\2\u0243\u0244\7g\2\2\u0244\u0245\7t\2\2\u0245T\3\2\2\2\u0246\u0247"+ + "\7u\2\2\u0247\u0248\7y\2\2\u0248\u0249\7k\2\2\u0249\u024a\7v\2\2\u024a"+ + "\u024b\7e\2\2\u024b\u024c\7j\2\2\u024cV\3\2\2\2\u024d\u024e\7u\2\2\u024e"+ + "\u024f\7{\2\2\u024f\u0250\7p\2\2\u0250\u0251\7e\2\2\u0251\u0252\7j\2\2"+ + "\u0252\u0253\7t\2\2\u0253\u0254\7q\2\2\u0254\u0255\7p\2\2\u0255\u0256"+ + "\7k\2\2\u0256\u0257\7|\2\2\u0257\u0258\7g\2\2\u0258\u0259\7f\2\2\u0259"+ + "X\3\2\2\2\u025a\u025b\7v\2\2\u025b\u025c\7j\2\2\u025c\u025d\7k\2\2\u025d"+ + "\u025e\7u\2\2\u025eZ\3\2\2\2\u025f\u0260\7v\2\2\u0260\u0261\7j\2\2\u0261"+ + "\u0262\7t\2\2\u0262\u0263\7q\2\2\u0263\u0264\7y\2\2\u0264\\\3\2\2\2\u0265"+ + "\u0266\7v\2\2\u0266\u0267\7j\2\2\u0267\u0268\7t\2\2\u0268\u0269\7q\2\2"+ + "\u0269\u026a\7y\2\2\u026a\u026b\7u\2\2\u026b^\3\2\2\2\u026c\u026d\7v\2"+ + "\2\u026d\u026e\7t\2\2\u026e\u026f\7c\2\2\u026f\u0270\7p\2\2\u0270\u0271"+ + "\7u\2\2\u0271\u0272\7k\2\2\u0272\u0273\7g\2\2\u0273\u0274\7p\2\2\u0274"+ + "\u0275\7v\2\2\u0275`\3\2\2\2\u0276\u0277\7v\2\2\u0277\u0278\7t\2\2\u0278"+ + "\u0279\7{\2\2\u0279b\3\2\2\2\u027a\u027b\7x\2\2\u027b\u027c\7q\2\2\u027c"+ + "\u027d\7k\2\2\u027d\u027e\7f\2\2\u027ed\3\2\2\2\u027f\u0280\7x\2\2\u0280"+ + "\u0281\7q\2\2\u0281\u0282\7n\2\2\u0282\u0283\7c\2\2\u0283\u0284\7v\2\2"+ + "\u0284\u0285\7k\2\2\u0285\u0286\7n\2\2\u0286\u0287\7g\2\2\u0287f\3\2\2"+ + "\2\u0288\u0289\7y\2\2\u0289\u028a\7j\2\2\u028a\u028b\7k\2\2\u028b\u028c"+ + "\7n\2\2\u028c\u028d\7g\2\2\u028dh\3\2\2\2\u028e\u0293\5k\66\2\u028f\u0293"+ + "\5m\67\2\u0290\u0293\5o8\2\u0291\u0293\5q9\2\u0292\u028e\3\2\2\2\u0292"+ + "\u028f\3\2\2\2\u0292\u0290\3\2\2\2\u0292\u0291\3\2\2\2\u0293j\3\2\2\2"+ + "\u0294\u0296\5u;\2\u0295\u0297\5s:\2\u0296\u0295\3\2\2\2\u0296\u0297\3"+ + "\2\2\2\u0297l\3\2\2\2\u0298\u029a\5\u0083B\2\u0299\u029b\5s:\2\u029a\u0299"+ + "\3\2\2\2\u029a\u029b\3\2\2\2\u029bn\3\2\2\2\u029c\u029e\5\u008dG\2\u029d"+ + "\u029f\5s:\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029fp\3\2\2\2\u02a0"+ + "\u02a2\5\u0097L\2\u02a1\u02a3\5s:\2\u02a2\u02a1\3\2\2\2\u02a2\u02a3\3"+ + "\2\2\2\u02a3r\3\2\2\2\u02a4\u02a5\t\2\2\2\u02a5t\3\2\2\2\u02a6\u02b1\7"+ + "\62\2\2\u02a7\u02ae\5{>\2\u02a8\u02aa\5w<\2\u02a9\u02a8\3\2\2\2\u02a9"+ + "\u02aa\3\2\2\2\u02aa\u02af\3\2\2\2\u02ab\u02ac\5\u0081A\2\u02ac\u02ad"+ + "\5w<\2\u02ad\u02af\3\2\2\2\u02ae\u02a9\3\2\2\2\u02ae\u02ab\3\2\2\2\u02af"+ + "\u02b1\3\2\2\2\u02b0\u02a6\3\2\2\2\u02b0\u02a7\3\2\2\2\u02b1v\3\2\2\2"+ + "\u02b2\u02b7\5y=\2\u02b3\u02b5\5}?\2\u02b4\u02b3\3\2\2\2\u02b4\u02b5\3"+ + "\2\2\2\u02b5\u02b6\3\2\2\2\u02b6\u02b8\5y=\2\u02b7\u02b4\3\2\2\2\u02b7"+ + "\u02b8\3\2\2\2\u02b8x\3\2\2\2\u02b9\u02bc\7\62\2\2\u02ba\u02bc\5{>\2\u02bb"+ + "\u02b9\3\2\2\2\u02bb\u02ba\3\2\2\2\u02bcz\3\2\2\2\u02bd\u02be\t\3\2\2"+ + "\u02be|\3\2\2\2\u02bf\u02c1\5\177@\2\u02c0\u02bf\3\2\2\2\u02c1\u02c2\3"+ + "\2\2\2\u02c2\u02c0\3\2\2\2\u02c2\u02c3\3\2\2\2\u02c3~\3\2\2\2\u02c4\u02c7"+ + "\5y=\2\u02c5\u02c7\7a\2\2\u02c6\u02c4\3\2\2\2\u02c6\u02c5\3\2\2\2\u02c7"+ + "\u0080\3\2\2\2\u02c8\u02ca\7a\2\2\u02c9\u02c8\3\2\2\2\u02ca\u02cb\3\2"+ + "\2\2\u02cb\u02c9\3\2\2\2\u02cb\u02cc\3\2\2\2\u02cc\u0082\3\2\2\2\u02cd"+ + "\u02ce\7\62\2\2\u02ce\u02cf\t\4\2\2\u02cf\u02d0\5\u0085C\2\u02d0\u0084"+ + "\3\2\2\2\u02d1\u02d6\5\u0087D\2\u02d2\u02d4\5\u0089E\2\u02d3\u02d2\3\2"+ + "\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d5\3\2\2\2\u02d5\u02d7\5\u0087D\2\u02d6"+ + "\u02d3\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7\u0086\3\2\2\2\u02d8\u02d9\t\5"+ + "\2\2\u02d9\u0088\3\2\2\2\u02da\u02dc\5\u008bF\2\u02db\u02da\3\2\2\2\u02dc"+ + "\u02dd\3\2\2\2\u02dd\u02db\3\2\2\2\u02dd\u02de\3\2\2\2\u02de\u008a\3\2"+ + "\2\2\u02df\u02e2\5\u0087D\2\u02e0\u02e2\7a\2\2\u02e1\u02df\3\2\2\2\u02e1"+ + "\u02e0\3\2\2\2\u02e2\u008c\3\2\2\2\u02e3\u02e5\7\62\2\2\u02e4\u02e6\5"+ + "\u0081A\2\u02e5\u02e4\3\2\2\2\u02e5\u02e6\3\2\2\2\u02e6\u02e7\3\2\2\2"+ + "\u02e7\u02e8\5\u008fH\2\u02e8\u008e\3\2\2\2\u02e9\u02ee\5\u0091I\2\u02ea"+ + "\u02ec\5\u0093J\2\u02eb\u02ea\3\2\2\2\u02eb\u02ec\3\2\2\2\u02ec\u02ed"+ + "\3\2\2\2\u02ed\u02ef\5\u0091I\2\u02ee\u02eb\3\2\2\2\u02ee\u02ef\3\2\2"+ + "\2\u02ef\u0090\3\2\2\2\u02f0\u02f1\t\6\2\2\u02f1\u0092\3\2\2\2\u02f2\u02f4"+ + "\5\u0095K\2\u02f3\u02f2\3\2\2\2\u02f4\u02f5\3\2\2\2\u02f5\u02f3\3\2\2"+ + "\2\u02f5\u02f6\3\2\2\2\u02f6\u0094\3\2\2\2\u02f7\u02fa\5\u0091I\2\u02f8"+ + "\u02fa\7a\2\2\u02f9\u02f7\3\2\2\2\u02f9\u02f8\3\2\2\2\u02fa\u0096\3\2"+ + "\2\2\u02fb\u02fc\7\62\2\2\u02fc\u02fd\t\7\2\2\u02fd\u02fe\5\u0099M\2\u02fe"+ + "\u0098\3\2\2\2\u02ff\u0304\5\u009bN\2\u0300\u0302\5\u009dO\2\u0301\u0300"+ + "\3\2\2\2\u0301\u0302\3\2\2\2\u0302\u0303\3\2\2\2\u0303\u0305\5\u009bN"+ + "\2\u0304\u0301\3\2\2\2\u0304\u0305\3\2\2\2\u0305\u009a\3\2\2\2\u0306\u0307"+ + "\t\b\2\2\u0307\u009c\3\2\2\2\u0308\u030a\5\u009fP\2\u0309\u0308\3\2\2"+ + "\2\u030a\u030b\3\2\2\2\u030b\u0309\3\2\2\2\u030b\u030c\3\2\2\2\u030c\u009e"+ + "\3\2\2\2\u030d\u0310\5\u009bN\2\u030e\u0310\7a\2\2\u030f\u030d\3\2\2\2"+ + "\u030f\u030e\3\2\2\2\u0310\u00a0\3\2\2\2\u0311\u0314\5\u00a3R\2\u0312"+ + "\u0314\5\u00afX\2\u0313\u0311\3\2\2\2\u0313\u0312\3\2\2\2\u0314\u00a2"+ + "\3\2\2\2\u0315\u0316\5w<\2\u0316\u0318\7\60\2\2\u0317\u0319\5w<\2\u0318"+ + "\u0317\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u031b\3\2\2\2\u031a\u031c\5\u00a5"+ + "S\2\u031b\u031a\3\2\2\2\u031b\u031c\3\2\2\2\u031c\u031e\3\2\2\2\u031d"+ + "\u031f\5\u00adW\2\u031e\u031d\3\2\2\2\u031e\u031f\3\2\2\2\u031f\u0331"+ + "\3\2\2\2\u0320\u0321\7\60\2\2\u0321\u0323\5w<\2\u0322\u0324\5\u00a5S\2"+ + "\u0323\u0322\3\2\2\2\u0323\u0324\3\2\2\2\u0324\u0326\3\2\2\2\u0325\u0327"+ + "\5\u00adW\2\u0326\u0325\3\2\2\2\u0326\u0327\3\2\2\2\u0327\u0331\3\2\2"+ + "\2\u0328\u0329\5w<\2\u0329\u032b\5\u00a5S\2\u032a\u032c\5\u00adW\2\u032b"+ + "\u032a\3\2\2\2\u032b\u032c\3\2\2\2\u032c\u0331\3\2\2\2\u032d\u032e\5w"+ + "<\2\u032e\u032f\5\u00adW\2\u032f\u0331\3\2\2\2\u0330\u0315\3\2\2\2\u0330"+ + "\u0320\3\2\2\2\u0330\u0328\3\2\2\2\u0330\u032d\3\2\2\2\u0331\u00a4\3\2"+ + "\2\2\u0332\u0333\5\u00a7T\2\u0333\u0334\5\u00a9U\2\u0334\u00a6\3\2\2\2"+ + "\u0335\u0336\t\t\2\2\u0336\u00a8\3\2\2\2\u0337\u0339\5\u00abV\2\u0338"+ + "\u0337\3\2\2\2\u0338\u0339\3\2\2\2\u0339\u033a\3\2\2\2\u033a\u033b\5w"+ + "<\2\u033b\u00aa\3\2\2\2\u033c\u033d\t\n\2\2\u033d\u00ac\3\2\2\2\u033e"+ + "\u033f\t\13\2\2\u033f\u00ae\3\2\2\2\u0340\u0341\5\u00b1Y\2\u0341\u0343"+ + "\5\u00b3Z\2\u0342\u0344\5\u00adW\2\u0343\u0342\3\2\2\2\u0343\u0344\3\2"+ + "\2\2\u0344\u00b0\3\2\2\2\u0345\u0347\5\u0083B\2\u0346\u0348\7\60\2\2\u0347"+ + "\u0346\3\2\2\2\u0347\u0348\3\2\2\2\u0348\u0351\3\2\2\2\u0349\u034a\7\62"+ + "\2\2\u034a\u034c\t\4\2\2\u034b\u034d\5\u0085C\2\u034c\u034b\3\2\2\2\u034c"+ + "\u034d\3\2\2\2\u034d\u034e\3\2\2\2\u034e\u034f\7\60\2\2\u034f\u0351\5"+ + "\u0085C\2\u0350\u0345\3\2\2\2\u0350\u0349\3\2\2\2\u0351\u00b2\3\2\2\2"+ + "\u0352\u0353\5\u00b5[\2\u0353\u0354\5\u00a9U\2\u0354\u00b4\3\2\2\2\u0355"+ + "\u0356\t\f\2\2\u0356\u00b6\3\2\2\2\u0357\u0358\7v\2\2\u0358\u0359\7t\2"+ + "\2\u0359\u035a\7w\2\2\u035a\u0361\7g\2\2\u035b\u035c\7h\2\2\u035c\u035d"+ + "\7c\2\2\u035d\u035e\7n\2\2\u035e\u035f\7u\2\2\u035f\u0361\7g\2\2\u0360"+ + "\u0357\3\2\2\2\u0360\u035b\3\2\2\2\u0361\u00b8\3\2\2\2\u0362\u0363\7)"+ + "\2\2\u0363\u0364\5\u00bb^\2\u0364\u0365\7)\2\2\u0365\u036b\3\2\2\2\u0366"+ + "\u0367\7)\2\2\u0367\u0368\5\u00c3b\2\u0368\u0369\7)\2\2\u0369\u036b\3"+ + "\2\2\2\u036a\u0362\3\2\2\2\u036a\u0366\3\2\2\2\u036b\u00ba\3\2\2\2\u036c"+ + "\u036d\n\r\2\2\u036d\u00bc\3\2\2\2\u036e\u0370\7$\2\2\u036f\u0371\5\u00bf"+ + "`\2\u0370\u036f\3\2\2\2\u0370\u0371\3\2\2\2\u0371\u0372\3\2\2\2\u0372"+ + "\u0373\7$\2\2\u0373\u00be\3\2\2\2\u0374\u0376\5\u00c1a\2\u0375\u0374\3"+ + "\2\2\2\u0376\u0377\3\2\2\2\u0377\u0375\3\2\2\2\u0377\u0378\3\2\2\2\u0378"+ + "\u00c0\3\2\2\2\u0379\u037c\n\16\2\2\u037a\u037c\5\u00c3b\2\u037b\u0379"+ + "\3\2\2\2\u037b\u037a\3\2\2\2\u037c\u00c2\3\2\2\2\u037d\u037e\7^\2\2\u037e"+ + "\u0382\t\17\2\2\u037f\u0382\5\u00c5c\2\u0380\u0382\5\u00c9e\2\u0381\u037d"+ + "\3\2\2\2\u0381\u037f\3\2\2\2\u0381\u0380\3\2\2\2\u0382\u00c4\3\2\2\2\u0383"+ + "\u0384\7^\2\2\u0384\u038f\5\u0091I\2\u0385\u0386\7^\2\2\u0386\u0387\5"+ + "\u0091I\2\u0387\u0388\5\u0091I\2\u0388\u038f\3\2\2\2\u0389\u038a\7^\2"+ + "\2\u038a\u038b\5\u00c7d\2\u038b\u038c\5\u0091I\2\u038c\u038d\5\u0091I"+ + "\2\u038d\u038f\3\2\2\2\u038e\u0383\3\2\2\2\u038e\u0385\3\2\2\2\u038e\u0389"+ + "\3\2\2\2\u038f\u00c6\3\2\2\2\u0390\u0391\t\20\2\2\u0391\u00c8\3\2\2\2"+ + "\u0392\u0393\7^\2\2\u0393\u0394\7w\2\2\u0394\u0395\5\u0087D\2\u0395\u0396"+ + "\5\u0087D\2\u0396\u0397\5\u0087D\2\u0397\u0398\5\u0087D\2\u0398\u00ca"+ + "\3\2\2\2\u0399\u039a\7p\2\2\u039a\u039b\7w\2\2\u039b\u039c\7n\2\2\u039c"+ + "\u039d\7n\2\2\u039d\u00cc\3\2\2\2\u039e\u039f\7*\2\2\u039f\u00ce\3\2\2"+ + "\2\u03a0\u03a1\7+\2\2\u03a1\u00d0\3\2\2\2\u03a2\u03a3\7}\2\2\u03a3\u00d2"+ + "\3\2\2\2\u03a4\u03a5\7\177\2\2\u03a5\u00d4\3\2\2\2\u03a6\u03a7\7]\2\2"+ + "\u03a7\u00d6\3\2\2\2\u03a8\u03a9\7_\2\2\u03a9\u00d8\3\2\2\2\u03aa\u03ab"+ + "\7=\2\2\u03ab\u00da\3\2\2\2\u03ac\u03ad\7.\2\2\u03ad\u00dc\3\2\2\2\u03ae"+ + "\u03af\7\60\2\2\u03af\u00de\3\2\2\2\u03b0\u03b1\7?\2\2\u03b1\u00e0\3\2"+ + "\2\2\u03b2\u03b3\7@\2\2\u03b3\u00e2\3\2\2\2\u03b4\u03b5\7>\2\2\u03b5\u00e4"+ + "\3\2\2\2\u03b6\u03b7\7#\2\2\u03b7\u00e6\3\2\2\2\u03b8\u03b9\7\u0080\2"+ + "\2\u03b9\u00e8\3\2\2\2\u03ba\u03bb\7A\2\2\u03bb\u00ea\3\2\2\2\u03bc\u03bd"+ + "\7<\2\2\u03bd\u00ec\3\2\2\2\u03be\u03bf\7?\2\2\u03bf\u03c0\7?\2\2\u03c0"+ + "\u00ee\3\2\2\2\u03c1\u03c2\7>\2\2\u03c2\u03c3\7?\2\2\u03c3\u00f0\3\2\2"+ + "\2\u03c4\u03c5\7@\2\2\u03c5\u03c6\7?\2\2\u03c6\u00f2\3\2\2\2\u03c7\u03c8"+ + "\7#\2\2\u03c8\u03c9\7?\2\2\u03c9\u00f4\3\2\2\2\u03ca\u03cb\7(\2\2\u03cb"+ + "\u03cc\7(\2\2\u03cc\u00f6\3\2\2\2\u03cd\u03ce\7~\2\2\u03ce\u03cf\7~\2"+ + "\2\u03cf\u00f8\3\2\2\2\u03d0\u03d1\7-\2\2\u03d1\u03d2\7-\2\2\u03d2\u00fa"+ + "\3\2\2\2\u03d3\u03d4\7/\2\2\u03d4\u03d5\7/\2\2\u03d5\u00fc\3\2\2\2\u03d6"+ + "\u03d7\7-\2\2\u03d7\u00fe\3\2\2\2\u03d8\u03d9\7/\2\2\u03d9\u0100\3\2\2"+ + "\2\u03da\u03db\7,\2\2\u03db\u0102\3\2\2\2\u03dc\u03dd\7\61\2\2\u03dd\u0104"+ + "\3\2\2\2\u03de\u03df\7(\2\2\u03df\u0106\3\2\2\2\u03e0\u03e1\7~\2\2\u03e1"+ + "\u0108\3\2\2\2\u03e2\u03e3\7`\2\2\u03e3\u010a\3\2\2\2\u03e4\u03e5\7\'"+ + "\2\2\u03e5\u010c\3\2\2\2\u03e6\u03e7\7/\2\2\u03e7\u03e8\7@\2\2\u03e8\u010e"+ + "\3\2\2\2\u03e9\u03ea\7<\2\2\u03ea\u03eb\7<\2\2\u03eb\u0110\3\2\2\2\u03ec"+ + "\u03ed\7-\2\2\u03ed\u03ee\7?\2\2\u03ee\u0112\3\2\2\2\u03ef\u03f0\7/\2"+ + "\2\u03f0\u03f1\7?\2\2\u03f1\u0114\3\2\2\2\u03f2\u03f3\7,\2\2\u03f3\u03f4"+ + "\7?\2\2\u03f4\u0116\3\2\2\2\u03f5\u03f6\7\61\2\2\u03f6\u03f7\7?\2\2\u03f7"+ + "\u0118\3\2\2\2\u03f8\u03f9\7(\2\2\u03f9\u03fa\7?\2\2\u03fa\u011a\3\2\2"+ + "\2\u03fb\u03fc\7~\2\2\u03fc\u03fd\7?\2\2\u03fd\u011c\3\2\2\2\u03fe\u03ff"+ + "\7`\2\2\u03ff\u0400\7?\2\2\u0400\u011e\3\2\2\2\u0401\u0402\7\'\2\2\u0402"+ + "\u0403\7?\2\2\u0403\u0120\3\2\2\2\u0404\u0405\7>\2\2\u0405\u0406\7>\2"+ + "\2\u0406\u0407\7?\2\2\u0407\u0122\3\2\2\2\u0408\u0409\7@\2\2\u0409\u040a"+ + "\7@\2\2\u040a\u040b\7?\2\2\u040b\u0124\3\2\2\2\u040c\u040d\7@\2\2\u040d"+ + "\u040e\7@\2\2\u040e\u040f\7@\2\2\u040f\u0410\7?\2\2\u0410\u0126\3\2\2"+ + "\2\u0411\u0415\5\u0129\u0095\2\u0412\u0414\5\u012b\u0096\2\u0413\u0412"+ + "\3\2\2\2\u0414\u0417\3\2\2\2\u0415\u0413\3\2\2\2\u0415\u0416\3\2\2\2\u0416"+ + "\u0128\3\2\2\2\u0417\u0415\3\2\2\2\u0418\u041f\t\21\2\2\u0419\u041a\n"+ + "\22\2\2\u041a\u041f\6\u0095\2\2\u041b\u041c\t\23\2\2\u041c\u041d\t\24"+ + "\2\2\u041d\u041f\6\u0095\3\2\u041e\u0418\3\2\2\2\u041e\u0419\3\2\2\2\u041e"+ + "\u041b\3\2\2\2\u041f\u012a\3\2\2\2\u0420\u0427\t\25\2\2\u0421\u0422\n"+ + "\22\2\2\u0422\u0427\6\u0096\4\2\u0423\u0424\t\23\2\2\u0424\u0425\t\24"+ + "\2\2\u0425\u0427\6\u0096\5\2\u0426\u0420\3\2\2\2\u0426\u0421\3\2\2\2\u0426"+ + "\u0423\3\2\2\2\u0427\u012c\3\2\2\2\u0428\u0429\7B\2\2\u0429\u012e\3\2"+ + "\2\2\u042a\u042b\7\60\2\2\u042b\u042c\7\60\2\2\u042c\u042d\7\60\2\2\u042d"+ + "\u0130\3\2\2\2\u042e\u0430\t\26\2\2\u042f\u042e\3\2\2\2\u0430\u0431\3"+ + "\2\2\2\u0431\u042f\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433"+ + "\u0434\b\u0099\2\2\u0434\u0132\3\2\2\2\u0435\u0436\7\61\2\2\u0436\u0437"+ + "\7,\2\2\u0437\u043b\3\2\2\2\u0438\u043a\13\2\2\2\u0439\u0438\3\2\2\2\u043a"+ + "\u043d\3\2\2\2\u043b\u043c\3\2\2\2\u043b\u0439\3\2\2\2\u043c\u043e\3\2"+ + "\2\2\u043d\u043b\3\2\2\2\u043e\u043f\7,\2\2\u043f\u0440\7\61\2\2\u0440"+ + "\u0441\3\2\2\2\u0441\u0442\b\u009a\2\2\u0442\u0134\3\2\2\2\u0443\u0444"+ + "\7\61\2\2\u0444\u0445\7\61\2\2\u0445\u0449\3\2\2\2\u0446\u0448\n\27\2"+ + "\2\u0447\u0446\3\2\2\2\u0448\u044b\3\2\2\2\u0449\u0447\3\2\2\2\u0449\u044a"+ + "\3\2\2\2\u044a\u044c\3\2\2\2\u044b\u0449\3\2\2\2\u044c\u044d\b\u009b\2"+ + "\2\u044d\u0136\3\2\2\28\2\u0292\u0296\u029a\u029e\u02a2\u02a9\u02ae\u02b0"+ + "\u02b4\u02b7\u02bb\u02c2\u02c6\u02cb\u02d3\u02d6\u02dd\u02e1\u02e5\u02eb"+ + "\u02ee\u02f5\u02f9\u0301\u0304\u030b\u030f\u0313\u0318\u031b\u031e\u0323"+ + "\u0326\u032b\u0330\u0338\u0343\u0347\u034c\u0350\u0360\u036a\u0370\u0377"+ + "\u037b\u0381\u038e\u0415\u041e\u0426\u0431\u043b\u0449\3\b\2\2"; + 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); + } + } +} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens new file mode 100644 index 00000000..da68d014 --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens @@ -0,0 +1,207 @@ +T__0=1 +ABSTRACT=2 +ASSERT=3 +BOOLEAN=4 +BREAK=5 +BYTE=6 +CASE=7 +CATCH=8 +CHAR=9 +CLASS=10 +CONST=11 +CONTINUE=12 +DEFAULT=13 +DO=14 +DOUBLE=15 +ELSE=16 +ENUM=17 +EXTENDS=18 +FINAL=19 +FINALLY=20 +FLOAT=21 +FOR=22 +IF=23 +GOTO=24 +IMPLEMENTS=25 +IMPORT=26 +INSTANCEOF=27 +INT=28 +INTERFACE=29 +LONG=30 +NATIVE=31 +NEW=32 +PACKAGE=33 +PRIVATE=34 +PROTECTED=35 +PUBLIC=36 +RETURN=37 +SHORT=38 +STATIC=39 +STRICTFP=40 +SUPER=41 +SWITCH=42 +SYNCHRONIZED=43 +THIS=44 +THROW=45 +THROWS=46 +TRANSIENT=47 +TRY=48 +VOID=49 +VOLATILE=50 +WHILE=51 +IntegerLiteral=52 +FloatingPointLiteral=53 +BooleanLiteral=54 +CharacterLiteral=55 +StringLiteral=56 +NullLiteral=57 +LPAREN=58 +RPAREN=59 +LBRACE=60 +RBRACE=61 +LBRACK=62 +RBRACK=63 +SEMI=64 +COMMA=65 +DOT=66 +ASSIGN=67 +GT=68 +LT=69 +BANG=70 +TILDE=71 +QUESTION=72 +COLON=73 +EQUAL=74 +LE=75 +GE=76 +NOTEQUAL=77 +AND=78 +OR=79 +INC=80 +DEC=81 +ADD=82 +SUB=83 +MUL=84 +DIV=85 +BITAND=86 +BITOR=87 +CARET=88 +MOD=89 +ARROW=90 +COLONCOLON=91 +ADD_ASSIGN=92 +SUB_ASSIGN=93 +MUL_ASSIGN=94 +DIV_ASSIGN=95 +AND_ASSIGN=96 +OR_ASSIGN=97 +XOR_ASSIGN=98 +MOD_ASSIGN=99 +LSHIFT_ASSIGN=100 +RSHIFT_ASSIGN=101 +URSHIFT_ASSIGN=102 +Identifier=103 +AT=104 +ELLIPSIS=105 +WS=106 +COMMENT=107 +LINE_COMMENT=108 +'var'=1 +'abstract'=2 +'assert'=3 +'boolean'=4 +'break'=5 +'byte'=6 +'case'=7 +'catch'=8 +'char'=9 +'class'=10 +'const'=11 +'continue'=12 +'default'=13 +'do'=14 +'double'=15 +'else'=16 +'enum'=17 +'extends'=18 +'final'=19 +'finally'=20 +'float'=21 +'for'=22 +'if'=23 +'goto'=24 +'implements'=25 +'import'=26 +'instanceof'=27 +'int'=28 +'interface'=29 +'long'=30 +'native'=31 +'new'=32 +'package'=33 +'private'=34 +'protected'=35 +'public'=36 +'return'=37 +'short'=38 +'static'=39 +'strictfp'=40 +'super'=41 +'switch'=42 +'synchronized'=43 +'this'=44 +'throw'=45 +'throws'=46 +'transient'=47 +'try'=48 +'void'=49 +'volatile'=50 +'while'=51 +'null'=57 +'('=58 +')'=59 +'{'=60 +'}'=61 +'['=62 +']'=63 +';'=64 +','=65 +'.'=66 +'='=67 +'>'=68 +'<'=69 +'!'=70 +'~'=71 +'?'=72 +':'=73 +'=='=74 +'<='=75 +'>='=76 +'!='=77 +'&&'=78 +'||'=79 +'++'=80 +'--'=81 +'+'=82 +'-'=83 +'*'=84 +'/'=85 +'&'=86 +'|'=87 +'^'=88 +'%'=89 +'->'=90 +'::'=91 +'+='=92 +'-='=93 +'*='=94 +'/='=95 +'&='=96 +'|='=97 +'^='=98 +'%='=99 +'<<='=100 +'>>='=101 +'>>>='=102 +'@'=104 +'...'=105 diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java new file mode 100644 index 00000000..a875c96f --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java @@ -0,0 +1,2390 @@ +// Generated from Java8.g4 by ANTLR 4.7 +package de.dhbwstuttgart.parser.antlr; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link Java8Parser}. + */ +public interface Java8Listener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link Java8Parser#literal}. + * @param ctx the parse tree + */ + void enterLiteral(Java8Parser.LiteralContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#literal}. + * @param ctx the parse tree + */ + void exitLiteral(Java8Parser.LiteralContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#type}. + * @param ctx the parse tree + */ + void enterType(Java8Parser.TypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#type}. + * @param ctx the parse tree + */ + void exitType(Java8Parser.TypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primitiveType}. + * @param ctx the parse tree + */ + void enterPrimitiveType(Java8Parser.PrimitiveTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primitiveType}. + * @param ctx the parse tree + */ + void exitPrimitiveType(Java8Parser.PrimitiveTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#numericType}. + * @param ctx the parse tree + */ + void enterNumericType(Java8Parser.NumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#numericType}. + * @param ctx the parse tree + */ + void exitNumericType(Java8Parser.NumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#integralType}. + * @param ctx the parse tree + */ + void enterIntegralType(Java8Parser.IntegralTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#integralType}. + * @param ctx the parse tree + */ + void exitIntegralType(Java8Parser.IntegralTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#floatingPointType}. + * @param ctx the parse tree + */ + void enterFloatingPointType(Java8Parser.FloatingPointTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#floatingPointType}. + * @param ctx the parse tree + */ + void exitFloatingPointType(Java8Parser.FloatingPointTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#referenceType}. + * @param ctx the parse tree + */ + void enterReferenceType(Java8Parser.ReferenceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#referenceType}. + * @param ctx the parse tree + */ + void exitReferenceType(Java8Parser.ReferenceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classType}. + * @param ctx the parse tree + */ + void enterClassType(Java8Parser.ClassTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classType}. + * @param ctx the parse tree + */ + void exitClassType(Java8Parser.ClassTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceType}. + * @param ctx the parse tree + */ + void enterInterfaceType(Java8Parser.InterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceType}. + * @param ctx the parse tree + */ + void exitInterfaceType(Java8Parser.InterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeVariable}. + * @param ctx the parse tree + */ + void enterTypeVariable(Java8Parser.TypeVariableContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeVariable}. + * @param ctx the parse tree + */ + void exitTypeVariable(Java8Parser.TypeVariableContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayType}. + * @param ctx the parse tree + */ + void enterArrayType(Java8Parser.ArrayTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayType}. + * @param ctx the parse tree + */ + void exitArrayType(Java8Parser.ArrayTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#dims}. + * @param ctx the parse tree + */ + void enterDims(Java8Parser.DimsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#dims}. + * @param ctx the parse tree + */ + void exitDims(Java8Parser.DimsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeParameter}. + * @param ctx the parse tree + */ + void enterTypeParameter(Java8Parser.TypeParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeParameter}. + * @param ctx the parse tree + */ + void exitTypeParameter(Java8Parser.TypeParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeParameterModifier}. + * @param ctx the parse tree + */ + void enterTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeParameterModifier}. + * @param ctx the parse tree + */ + void exitTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeBound}. + * @param ctx the parse tree + */ + void enterTypeBound(Java8Parser.TypeBoundContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeBound}. + * @param ctx the parse tree + */ + void exitTypeBound(Java8Parser.TypeBoundContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#additionalBound}. + * @param ctx the parse tree + */ + void enterAdditionalBound(Java8Parser.AdditionalBoundContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#additionalBound}. + * @param ctx the parse tree + */ + void exitAdditionalBound(Java8Parser.AdditionalBoundContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeArguments}. + * @param ctx the parse tree + */ + void enterTypeArguments(Java8Parser.TypeArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeArguments}. + * @param ctx the parse tree + */ + void exitTypeArguments(Java8Parser.TypeArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeArgumentList}. + * @param ctx the parse tree + */ + void enterTypeArgumentList(Java8Parser.TypeArgumentListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeArgumentList}. + * @param ctx the parse tree + */ + void exitTypeArgumentList(Java8Parser.TypeArgumentListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeArgument}. + * @param ctx the parse tree + */ + void enterTypeArgument(Java8Parser.TypeArgumentContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeArgument}. + * @param ctx the parse tree + */ + void exitTypeArgument(Java8Parser.TypeArgumentContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#wildcard}. + * @param ctx the parse tree + */ + void enterWildcard(Java8Parser.WildcardContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#wildcard}. + * @param ctx the parse tree + */ + void exitWildcard(Java8Parser.WildcardContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#wildcardBounds}. + * @param ctx the parse tree + */ + void enterWildcardBounds(Java8Parser.WildcardBoundsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#wildcardBounds}. + * @param ctx the parse tree + */ + void exitWildcardBounds(Java8Parser.WildcardBoundsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#packageName}. + * @param ctx the parse tree + */ + void enterPackageName(Java8Parser.PackageNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#packageName}. + * @param ctx the parse tree + */ + void exitPackageName(Java8Parser.PackageNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeName}. + * @param ctx the parse tree + */ + void enterTypeName(Java8Parser.TypeNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeName}. + * @param ctx the parse tree + */ + void exitTypeName(Java8Parser.TypeNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#packageOrTypeName}. + * @param ctx the parse tree + */ + void enterPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#packageOrTypeName}. + * @param ctx the parse tree + */ + void exitPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#expressionName}. + * @param ctx the parse tree + */ + void enterExpressionName(Java8Parser.ExpressionNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#expressionName}. + * @param ctx the parse tree + */ + void exitExpressionName(Java8Parser.ExpressionNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodName}. + * @param ctx the parse tree + */ + void enterMethodName(Java8Parser.MethodNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodName}. + * @param ctx the parse tree + */ + void exitMethodName(Java8Parser.MethodNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#ambiguousName}. + * @param ctx the parse tree + */ + void enterAmbiguousName(Java8Parser.AmbiguousNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#ambiguousName}. + * @param ctx the parse tree + */ + void exitAmbiguousName(Java8Parser.AmbiguousNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#compilationUnit}. + * @param ctx the parse tree + */ + void enterCompilationUnit(Java8Parser.CompilationUnitContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#compilationUnit}. + * @param ctx the parse tree + */ + void exitCompilationUnit(Java8Parser.CompilationUnitContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#packageDeclaration}. + * @param ctx the parse tree + */ + void enterPackageDeclaration(Java8Parser.PackageDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#packageDeclaration}. + * @param ctx the parse tree + */ + void exitPackageDeclaration(Java8Parser.PackageDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#packageModifier}. + * @param ctx the parse tree + */ + void enterPackageModifier(Java8Parser.PackageModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#packageModifier}. + * @param ctx the parse tree + */ + void exitPackageModifier(Java8Parser.PackageModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#importDeclaration}. + * @param ctx the parse tree + */ + void enterImportDeclaration(Java8Parser.ImportDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#importDeclaration}. + * @param ctx the parse tree + */ + void exitImportDeclaration(Java8Parser.ImportDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}. + * @param ctx the parse tree + */ + void enterSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}. + * @param ctx the parse tree + */ + void exitSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}. + * @param ctx the parse tree + */ + void enterTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}. + * @param ctx the parse tree + */ + void exitTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}. + * @param ctx the parse tree + */ + void enterSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}. + * @param ctx the parse tree + */ + void exitSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}. + * @param ctx the parse tree + */ + void enterStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}. + * @param ctx the parse tree + */ + void exitStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeDeclaration}. + * @param ctx the parse tree + */ + void enterTypeDeclaration(Java8Parser.TypeDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeDeclaration}. + * @param ctx the parse tree + */ + void exitTypeDeclaration(Java8Parser.TypeDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classDeclaration}. + * @param ctx the parse tree + */ + void enterClassDeclaration(Java8Parser.ClassDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classDeclaration}. + * @param ctx the parse tree + */ + void exitClassDeclaration(Java8Parser.ClassDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#normalClassDeclaration}. + * @param ctx the parse tree + */ + void enterNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#normalClassDeclaration}. + * @param ctx the parse tree + */ + void exitNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classModifier}. + * @param ctx the parse tree + */ + void enterClassModifier(Java8Parser.ClassModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classModifier}. + * @param ctx the parse tree + */ + void exitClassModifier(Java8Parser.ClassModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeParameters}. + * @param ctx the parse tree + */ + void enterTypeParameters(Java8Parser.TypeParametersContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeParameters}. + * @param ctx the parse tree + */ + void exitTypeParameters(Java8Parser.TypeParametersContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeParameterList}. + * @param ctx the parse tree + */ + void enterTypeParameterList(Java8Parser.TypeParameterListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeParameterList}. + * @param ctx the parse tree + */ + void exitTypeParameterList(Java8Parser.TypeParameterListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#superclass}. + * @param ctx the parse tree + */ + void enterSuperclass(Java8Parser.SuperclassContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#superclass}. + * @param ctx the parse tree + */ + void exitSuperclass(Java8Parser.SuperclassContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#superinterfaces}. + * @param ctx the parse tree + */ + void enterSuperinterfaces(Java8Parser.SuperinterfacesContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#superinterfaces}. + * @param ctx the parse tree + */ + void exitSuperinterfaces(Java8Parser.SuperinterfacesContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceTypeList}. + * @param ctx the parse tree + */ + void enterInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceTypeList}. + * @param ctx the parse tree + */ + void exitInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classBody}. + * @param ctx the parse tree + */ + void enterClassBody(Java8Parser.ClassBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classBody}. + * @param ctx the parse tree + */ + void exitClassBody(Java8Parser.ClassBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void enterClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void exitClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classMemberDeclaration}. + * @param ctx the parse tree + */ + void enterClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classMemberDeclaration}. + * @param ctx the parse tree + */ + void exitClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#fieldDeclaration}. + * @param ctx the parse tree + */ + void enterFieldDeclaration(Java8Parser.FieldDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#fieldDeclaration}. + * @param ctx the parse tree + */ + void exitFieldDeclaration(Java8Parser.FieldDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#fieldModifier}. + * @param ctx the parse tree + */ + void enterFieldModifier(Java8Parser.FieldModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#fieldModifier}. + * @param ctx the parse tree + */ + void exitFieldModifier(Java8Parser.FieldModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorList}. + * @param ctx the parse tree + */ + void enterVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorList}. + * @param ctx the parse tree + */ + void exitVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableDeclarator}. + * @param ctx the parse tree + */ + void enterVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableDeclarator}. + * @param ctx the parse tree + */ + void exitVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorId}. + * @param ctx the parse tree + */ + void enterVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorId}. + * @param ctx the parse tree + */ + void exitVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableInitializer}. + * @param ctx the parse tree + */ + void enterVariableInitializer(Java8Parser.VariableInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableInitializer}. + * @param ctx the parse tree + */ + void exitVariableInitializer(Java8Parser.VariableInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannType}. + * @param ctx the parse tree + */ + void enterUnannType(Java8Parser.UnannTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannType}. + * @param ctx the parse tree + */ + void exitUnannType(Java8Parser.UnannTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannPrimitiveType}. + * @param ctx the parse tree + */ + void enterUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannPrimitiveType}. + * @param ctx the parse tree + */ + void exitUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannReferenceType}. + * @param ctx the parse tree + */ + void enterUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannReferenceType}. + * @param ctx the parse tree + */ + void exitUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannClassType}. + * @param ctx the parse tree + */ + void enterUnannClassType(Java8Parser.UnannClassTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannClassType}. + * @param ctx the parse tree + */ + void exitUnannClassType(Java8Parser.UnannClassTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void enterUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}. + * @param ctx the parse tree + */ + void exitUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannTypeVariable}. + * @param ctx the parse tree + */ + void enterUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannTypeVariable}. + * @param ctx the parse tree + */ + void exitUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannArrayType}. + * @param ctx the parse tree + */ + void enterUnannArrayType(Java8Parser.UnannArrayTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannArrayType}. + * @param ctx the parse tree + */ + void exitUnannArrayType(Java8Parser.UnannArrayTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodDeclaration}. + * @param ctx the parse tree + */ + void enterMethodDeclaration(Java8Parser.MethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodDeclaration}. + * @param ctx the parse tree + */ + void exitMethodDeclaration(Java8Parser.MethodDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodModifier}. + * @param ctx the parse tree + */ + void enterMethodModifier(Java8Parser.MethodModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodModifier}. + * @param ctx the parse tree + */ + void exitMethodModifier(Java8Parser.MethodModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodHeader}. + * @param ctx the parse tree + */ + void enterMethodHeader(Java8Parser.MethodHeaderContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodHeader}. + * @param ctx the parse tree + */ + void exitMethodHeader(Java8Parser.MethodHeaderContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#result}. + * @param ctx the parse tree + */ + void enterResult(Java8Parser.ResultContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#result}. + * @param ctx the parse tree + */ + void exitResult(Java8Parser.ResultContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodDeclarator}. + * @param ctx the parse tree + */ + void enterMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodDeclarator}. + * @param ctx the parse tree + */ + void exitMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#formalParameterList}. + * @param ctx the parse tree + */ + void enterFormalParameterList(Java8Parser.FormalParameterListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#formalParameterList}. + * @param ctx the parse tree + */ + void exitFormalParameterList(Java8Parser.FormalParameterListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#formalParameters}. + * @param ctx the parse tree + */ + void enterFormalParameters(Java8Parser.FormalParametersContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#formalParameters}. + * @param ctx the parse tree + */ + void exitFormalParameters(Java8Parser.FormalParametersContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#formalParameter}. + * @param ctx the parse tree + */ + void enterFormalParameter(Java8Parser.FormalParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#formalParameter}. + * @param ctx the parse tree + */ + void exitFormalParameter(Java8Parser.FormalParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableModifier}. + * @param ctx the parse tree + */ + void enterVariableModifier(Java8Parser.VariableModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableModifier}. + * @param ctx the parse tree + */ + void exitVariableModifier(Java8Parser.VariableModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#lastFormalParameter}. + * @param ctx the parse tree + */ + void enterLastFormalParameter(Java8Parser.LastFormalParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#lastFormalParameter}. + * @param ctx the parse tree + */ + void exitLastFormalParameter(Java8Parser.LastFormalParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#receiverParameter}. + * @param ctx the parse tree + */ + void enterReceiverParameter(Java8Parser.ReceiverParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#receiverParameter}. + * @param ctx the parse tree + */ + void exitReceiverParameter(Java8Parser.ReceiverParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#throws_}. + * @param ctx the parse tree + */ + void enterThrows_(Java8Parser.Throws_Context ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#throws_}. + * @param ctx the parse tree + */ + void exitThrows_(Java8Parser.Throws_Context ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#exceptionTypeList}. + * @param ctx the parse tree + */ + void enterExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#exceptionTypeList}. + * @param ctx the parse tree + */ + void exitExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#exceptionType}. + * @param ctx the parse tree + */ + void enterExceptionType(Java8Parser.ExceptionTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#exceptionType}. + * @param ctx the parse tree + */ + void exitExceptionType(Java8Parser.ExceptionTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodBody}. + * @param ctx the parse tree + */ + void enterMethodBody(Java8Parser.MethodBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodBody}. + * @param ctx the parse tree + */ + void exitMethodBody(Java8Parser.MethodBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#instanceInitializer}. + * @param ctx the parse tree + */ + void enterInstanceInitializer(Java8Parser.InstanceInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#instanceInitializer}. + * @param ctx the parse tree + */ + void exitInstanceInitializer(Java8Parser.InstanceInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#staticInitializer}. + * @param ctx the parse tree + */ + void enterStaticInitializer(Java8Parser.StaticInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#staticInitializer}. + * @param ctx the parse tree + */ + void exitStaticInitializer(Java8Parser.StaticInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constructorDeclaration}. + * @param ctx the parse tree + */ + void enterConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constructorDeclaration}. + * @param ctx the parse tree + */ + void exitConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constructorModifier}. + * @param ctx the parse tree + */ + void enterConstructorModifier(Java8Parser.ConstructorModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constructorModifier}. + * @param ctx the parse tree + */ + void exitConstructorModifier(Java8Parser.ConstructorModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constructorDeclarator}. + * @param ctx the parse tree + */ + void enterConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constructorDeclarator}. + * @param ctx the parse tree + */ + void exitConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#simpleTypeName}. + * @param ctx the parse tree + */ + void enterSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#simpleTypeName}. + * @param ctx the parse tree + */ + void exitSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constructorBody}. + * @param ctx the parse tree + */ + void enterConstructorBody(Java8Parser.ConstructorBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constructorBody}. + * @param ctx the parse tree + */ + void exitConstructorBody(Java8Parser.ConstructorBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}. + * @param ctx the parse tree + */ + void enterExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}. + * @param ctx the parse tree + */ + void exitExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumDeclaration}. + * @param ctx the parse tree + */ + void enterEnumDeclaration(Java8Parser.EnumDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumDeclaration}. + * @param ctx the parse tree + */ + void exitEnumDeclaration(Java8Parser.EnumDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumBody}. + * @param ctx the parse tree + */ + void enterEnumBody(Java8Parser.EnumBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumBody}. + * @param ctx the parse tree + */ + void exitEnumBody(Java8Parser.EnumBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumConstantList}. + * @param ctx the parse tree + */ + void enterEnumConstantList(Java8Parser.EnumConstantListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumConstantList}. + * @param ctx the parse tree + */ + void exitEnumConstantList(Java8Parser.EnumConstantListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumConstant}. + * @param ctx the parse tree + */ + void enterEnumConstant(Java8Parser.EnumConstantContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumConstant}. + * @param ctx the parse tree + */ + void exitEnumConstant(Java8Parser.EnumConstantContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumConstantModifier}. + * @param ctx the parse tree + */ + void enterEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumConstantModifier}. + * @param ctx the parse tree + */ + void exitEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. + * @param ctx the parse tree + */ + void enterEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. + * @param ctx the parse tree + */ + void exitEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}. + * @param ctx the parse tree + */ + void enterNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}. + * @param ctx the parse tree + */ + void exitNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceModifier}. + * @param ctx the parse tree + */ + void enterInterfaceModifier(Java8Parser.InterfaceModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceModifier}. + * @param ctx the parse tree + */ + void exitInterfaceModifier(Java8Parser.InterfaceModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#extendsInterfaces}. + * @param ctx the parse tree + */ + void enterExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#extendsInterfaces}. + * @param ctx the parse tree + */ + void exitExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceBody}. + * @param ctx the parse tree + */ + void enterInterfaceBody(Java8Parser.InterfaceBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceBody}. + * @param ctx the parse tree + */ + void exitInterfaceBody(Java8Parser.InterfaceBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constantDeclaration}. + * @param ctx the parse tree + */ + void enterConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constantDeclaration}. + * @param ctx the parse tree + */ + void exitConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constantModifier}. + * @param ctx the parse tree + */ + void enterConstantModifier(Java8Parser.ConstantModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constantModifier}. + * @param ctx the parse tree + */ + void exitConstantModifier(Java8Parser.ConstantModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#interfaceMethodModifier}. + * @param ctx the parse tree + */ + void enterInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#interfaceMethodModifier}. + * @param ctx the parse tree + */ + void exitInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. + * @param ctx the parse tree + */ + void enterAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. + * @param ctx the parse tree + */ + void exitAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotationTypeBody}. + * @param ctx the parse tree + */ + void enterAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotationTypeBody}. + * @param ctx the parse tree + */ + void exitAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}. + * @param ctx the parse tree + */ + void enterAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}. + * @param ctx the parse tree + */ + void exitAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. + * @param ctx the parse tree + */ + void enterAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. + * @param ctx the parse tree + */ + void exitAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}. + * @param ctx the parse tree + */ + void enterAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}. + * @param ctx the parse tree + */ + void exitAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#defaultValue}. + * @param ctx the parse tree + */ + void enterDefaultValue(Java8Parser.DefaultValueContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#defaultValue}. + * @param ctx the parse tree + */ + void exitDefaultValue(Java8Parser.DefaultValueContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#annotation}. + * @param ctx the parse tree + */ + void enterAnnotation(Java8Parser.AnnotationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#annotation}. + * @param ctx the parse tree + */ + void exitAnnotation(Java8Parser.AnnotationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#normalAnnotation}. + * @param ctx the parse tree + */ + void enterNormalAnnotation(Java8Parser.NormalAnnotationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#normalAnnotation}. + * @param ctx the parse tree + */ + void exitNormalAnnotation(Java8Parser.NormalAnnotationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#elementValuePairList}. + * @param ctx the parse tree + */ + void enterElementValuePairList(Java8Parser.ElementValuePairListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#elementValuePairList}. + * @param ctx the parse tree + */ + void exitElementValuePairList(Java8Parser.ElementValuePairListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#elementValuePair}. + * @param ctx the parse tree + */ + void enterElementValuePair(Java8Parser.ElementValuePairContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#elementValuePair}. + * @param ctx the parse tree + */ + void exitElementValuePair(Java8Parser.ElementValuePairContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#elementValue}. + * @param ctx the parse tree + */ + void enterElementValue(Java8Parser.ElementValueContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#elementValue}. + * @param ctx the parse tree + */ + void exitElementValue(Java8Parser.ElementValueContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. + * @param ctx the parse tree + */ + void enterElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. + * @param ctx the parse tree + */ + void exitElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#elementValueList}. + * @param ctx the parse tree + */ + void enterElementValueList(Java8Parser.ElementValueListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#elementValueList}. + * @param ctx the parse tree + */ + void exitElementValueList(Java8Parser.ElementValueListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#markerAnnotation}. + * @param ctx the parse tree + */ + void enterMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#markerAnnotation}. + * @param ctx the parse tree + */ + void exitMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#singleElementAnnotation}. + * @param ctx the parse tree + */ + void enterSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#singleElementAnnotation}. + * @param ctx the parse tree + */ + void exitSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayInitializer}. + * @param ctx the parse tree + */ + void enterArrayInitializer(Java8Parser.ArrayInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayInitializer}. + * @param ctx the parse tree + */ + void exitArrayInitializer(Java8Parser.ArrayInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#variableInitializerList}. + * @param ctx the parse tree + */ + void enterVariableInitializerList(Java8Parser.VariableInitializerListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#variableInitializerList}. + * @param ctx the parse tree + */ + void exitVariableInitializerList(Java8Parser.VariableInitializerListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#block}. + * @param ctx the parse tree + */ + void enterBlock(Java8Parser.BlockContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#block}. + * @param ctx the parse tree + */ + void exitBlock(Java8Parser.BlockContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#blockStatements}. + * @param ctx the parse tree + */ + void enterBlockStatements(Java8Parser.BlockStatementsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#blockStatements}. + * @param ctx the parse tree + */ + void exitBlockStatements(Java8Parser.BlockStatementsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#blockStatement}. + * @param ctx the parse tree + */ + void enterBlockStatement(Java8Parser.BlockStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#blockStatement}. + * @param ctx the parse tree + */ + void exitBlockStatement(Java8Parser.BlockStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. + * @param ctx the parse tree + */ + void enterLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. + * @param ctx the parse tree + */ + void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. + * @param ctx the parse tree + */ + void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. + * @param ctx the parse tree + */ + void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#localVariableDeclaration}. + * @param ctx the parse tree + */ + void enterLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#localVariableDeclaration}. + * @param ctx the parse tree + */ + void exitLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#statement}. + * @param ctx the parse tree + */ + void enterStatement(Java8Parser.StatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#statement}. + * @param ctx the parse tree + */ + void exitStatement(Java8Parser.StatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#statementNoShortIf}. + * @param ctx the parse tree + */ + void enterStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#statementNoShortIf}. + * @param ctx the parse tree + */ + void exitStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}. + * @param ctx the parse tree + */ + void enterStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}. + * @param ctx the parse tree + */ + void exitStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#emptyStatement}. + * @param ctx the parse tree + */ + void enterEmptyStatement(Java8Parser.EmptyStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#emptyStatement}. + * @param ctx the parse tree + */ + void exitEmptyStatement(Java8Parser.EmptyStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#labeledStatement}. + * @param ctx the parse tree + */ + void enterLabeledStatement(Java8Parser.LabeledStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#labeledStatement}. + * @param ctx the parse tree + */ + void exitLabeledStatement(Java8Parser.LabeledStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#expressionStatement}. + * @param ctx the parse tree + */ + void enterExpressionStatement(Java8Parser.ExpressionStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#expressionStatement}. + * @param ctx the parse tree + */ + void exitExpressionStatement(Java8Parser.ExpressionStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#statementExpression}. + * @param ctx the parse tree + */ + void enterStatementExpression(Java8Parser.StatementExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#statementExpression}. + * @param ctx the parse tree + */ + void exitStatementExpression(Java8Parser.StatementExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#ifThenStatement}. + * @param ctx the parse tree + */ + void enterIfThenStatement(Java8Parser.IfThenStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#ifThenStatement}. + * @param ctx the parse tree + */ + void exitIfThenStatement(Java8Parser.IfThenStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatement}. + * @param ctx the parse tree + */ + void enterIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatement}. + * @param ctx the parse tree + */ + void exitIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#assertStatement}. + * @param ctx the parse tree + */ + void enterAssertStatement(Java8Parser.AssertStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#assertStatement}. + * @param ctx the parse tree + */ + void exitAssertStatement(Java8Parser.AssertStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#switchStatement}. + * @param ctx the parse tree + */ + void enterSwitchStatement(Java8Parser.SwitchStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#switchStatement}. + * @param ctx the parse tree + */ + void exitSwitchStatement(Java8Parser.SwitchStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#switchBlock}. + * @param ctx the parse tree + */ + void enterSwitchBlock(Java8Parser.SwitchBlockContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#switchBlock}. + * @param ctx the parse tree + */ + void exitSwitchBlock(Java8Parser.SwitchBlockContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. + * @param ctx the parse tree + */ + void enterSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. + * @param ctx the parse tree + */ + void exitSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#switchLabels}. + * @param ctx the parse tree + */ + void enterSwitchLabels(Java8Parser.SwitchLabelsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#switchLabels}. + * @param ctx the parse tree + */ + void exitSwitchLabels(Java8Parser.SwitchLabelsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#switchLabel}. + * @param ctx the parse tree + */ + void enterSwitchLabel(Java8Parser.SwitchLabelContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#switchLabel}. + * @param ctx the parse tree + */ + void exitSwitchLabel(Java8Parser.SwitchLabelContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enumConstantName}. + * @param ctx the parse tree + */ + void enterEnumConstantName(Java8Parser.EnumConstantNameContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enumConstantName}. + * @param ctx the parse tree + */ + void exitEnumConstantName(Java8Parser.EnumConstantNameContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#whileStatement}. + * @param ctx the parse tree + */ + void enterWhileStatement(Java8Parser.WhileStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#whileStatement}. + * @param ctx the parse tree + */ + void exitWhileStatement(Java8Parser.WhileStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#doStatement}. + * @param ctx the parse tree + */ + void enterDoStatement(Java8Parser.DoStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#doStatement}. + * @param ctx the parse tree + */ + void exitDoStatement(Java8Parser.DoStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#forStatement}. + * @param ctx the parse tree + */ + void enterForStatement(Java8Parser.ForStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#forStatement}. + * @param ctx the parse tree + */ + void exitForStatement(Java8Parser.ForStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#forStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#forStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#basicForStatement}. + * @param ctx the parse tree + */ + void enterBasicForStatement(Java8Parser.BasicForStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#basicForStatement}. + * @param ctx the parse tree + */ + void exitBasicForStatement(Java8Parser.BasicForStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#forInit}. + * @param ctx the parse tree + */ + void enterForInit(Java8Parser.ForInitContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#forInit}. + * @param ctx the parse tree + */ + void exitForInit(Java8Parser.ForInitContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#forUpdate}. + * @param ctx the parse tree + */ + void enterForUpdate(Java8Parser.ForUpdateContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#forUpdate}. + * @param ctx the parse tree + */ + void exitForUpdate(Java8Parser.ForUpdateContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#statementExpressionList}. + * @param ctx the parse tree + */ + void enterStatementExpressionList(Java8Parser.StatementExpressionListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#statementExpressionList}. + * @param ctx the parse tree + */ + void exitStatementExpressionList(Java8Parser.StatementExpressionListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enhancedForStatement}. + * @param ctx the parse tree + */ + void enterEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enhancedForStatement}. + * @param ctx the parse tree + */ + void exitEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}. + * @param ctx the parse tree + */ + void enterEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}. + * @param ctx the parse tree + */ + void exitEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#breakStatement}. + * @param ctx the parse tree + */ + void enterBreakStatement(Java8Parser.BreakStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#breakStatement}. + * @param ctx the parse tree + */ + void exitBreakStatement(Java8Parser.BreakStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#continueStatement}. + * @param ctx the parse tree + */ + void enterContinueStatement(Java8Parser.ContinueStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#continueStatement}. + * @param ctx the parse tree + */ + void exitContinueStatement(Java8Parser.ContinueStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#returnStatement}. + * @param ctx the parse tree + */ + void enterReturnStatement(Java8Parser.ReturnStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#returnStatement}. + * @param ctx the parse tree + */ + void exitReturnStatement(Java8Parser.ReturnStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#throwStatement}. + * @param ctx the parse tree + */ + void enterThrowStatement(Java8Parser.ThrowStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#throwStatement}. + * @param ctx the parse tree + */ + void exitThrowStatement(Java8Parser.ThrowStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#synchronizedStatement}. + * @param ctx the parse tree + */ + void enterSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#synchronizedStatement}. + * @param ctx the parse tree + */ + void exitSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#tryStatement}. + * @param ctx the parse tree + */ + void enterTryStatement(Java8Parser.TryStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#tryStatement}. + * @param ctx the parse tree + */ + void exitTryStatement(Java8Parser.TryStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#catches}. + * @param ctx the parse tree + */ + void enterCatches(Java8Parser.CatchesContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#catches}. + * @param ctx the parse tree + */ + void exitCatches(Java8Parser.CatchesContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#catchClause}. + * @param ctx the parse tree + */ + void enterCatchClause(Java8Parser.CatchClauseContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#catchClause}. + * @param ctx the parse tree + */ + void exitCatchClause(Java8Parser.CatchClauseContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#catchFormalParameter}. + * @param ctx the parse tree + */ + void enterCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#catchFormalParameter}. + * @param ctx the parse tree + */ + void exitCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#catchType}. + * @param ctx the parse tree + */ + void enterCatchType(Java8Parser.CatchTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#catchType}. + * @param ctx the parse tree + */ + void exitCatchType(Java8Parser.CatchTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#finally_}. + * @param ctx the parse tree + */ + void enterFinally_(Java8Parser.Finally_Context ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#finally_}. + * @param ctx the parse tree + */ + void exitFinally_(Java8Parser.Finally_Context ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}. + * @param ctx the parse tree + */ + void enterTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}. + * @param ctx the parse tree + */ + void exitTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#resourceSpecification}. + * @param ctx the parse tree + */ + void enterResourceSpecification(Java8Parser.ResourceSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#resourceSpecification}. + * @param ctx the parse tree + */ + void exitResourceSpecification(Java8Parser.ResourceSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#resourceList}. + * @param ctx the parse tree + */ + void enterResourceList(Java8Parser.ResourceListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#resourceList}. + * @param ctx the parse tree + */ + void exitResourceList(Java8Parser.ResourceListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#resource}. + * @param ctx the parse tree + */ + void enterResource(Java8Parser.ResourceContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#resource}. + * @param ctx the parse tree + */ + void exitResource(Java8Parser.ResourceContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimary(Java8Parser.PrimaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimary(Java8Parser.PrimaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}. + * @param ctx the parse tree + */ + void enterClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}. + * @param ctx the parse tree + */ + void exitClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}. + * @param ctx the parse tree + */ + void enterClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}. + * @param ctx the parse tree + */ + void exitClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}. + * @param ctx the parse tree + */ + void enterClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}. + * @param ctx the parse tree + */ + void exitClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void enterTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void exitTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#fieldAccess}. + * @param ctx the parse tree + */ + void enterFieldAccess(Java8Parser.FieldAccessContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#fieldAccess}. + * @param ctx the parse tree + */ + void exitFieldAccess(Java8Parser.FieldAccessContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}. + * @param ctx the parse tree + */ + void enterFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}. + * @param ctx the parse tree + */ + void exitFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}. + * @param ctx the parse tree + */ + void enterFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}. + * @param ctx the parse tree + */ + void exitFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayAccess}. + * @param ctx the parse tree + */ + void enterArrayAccess(Java8Parser.ArrayAccessContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayAccess}. + * @param ctx the parse tree + */ + void exitArrayAccess(Java8Parser.ArrayAccessContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void enterArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}. + * @param ctx the parse tree + */ + void exitArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void enterArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}. + * @param ctx the parse tree + */ + void exitArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodInvocation}. + * @param ctx the parse tree + */ + void enterMethodInvocation(Java8Parser.MethodInvocationContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodInvocation}. + * @param ctx the parse tree + */ + void exitMethodInvocation(Java8Parser.MethodInvocationContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}. + * @param ctx the parse tree + */ + void enterMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}. + * @param ctx the parse tree + */ + void exitMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}. + * @param ctx the parse tree + */ + void enterMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}. + * @param ctx the parse tree + */ + void exitMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#argumentList}. + * @param ctx the parse tree + */ + void enterArgumentList(Java8Parser.ArgumentListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#argumentList}. + * @param ctx the parse tree + */ + void exitArgumentList(Java8Parser.ArgumentListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodReference}. + * @param ctx the parse tree + */ + void enterMethodReference(Java8Parser.MethodReferenceContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodReference}. + * @param ctx the parse tree + */ + void exitMethodReference(Java8Parser.MethodReferenceContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodReference_lf_primary}. + * @param ctx the parse tree + */ + void enterMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodReference_lf_primary}. + * @param ctx the parse tree + */ + void exitMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}. + * @param ctx the parse tree + */ + void enterMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}. + * @param ctx the parse tree + */ + void exitMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#arrayCreationExpression}. + * @param ctx the parse tree + */ + void enterArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#arrayCreationExpression}. + * @param ctx the parse tree + */ + void exitArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#dimExprs}. + * @param ctx the parse tree + */ + void enterDimExprs(Java8Parser.DimExprsContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#dimExprs}. + * @param ctx the parse tree + */ + void exitDimExprs(Java8Parser.DimExprsContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#dimExpr}. + * @param ctx the parse tree + */ + void enterDimExpr(Java8Parser.DimExprContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#dimExpr}. + * @param ctx the parse tree + */ + void exitDimExpr(Java8Parser.DimExprContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#constantExpression}. + * @param ctx the parse tree + */ + void enterConstantExpression(Java8Parser.ConstantExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#constantExpression}. + * @param ctx the parse tree + */ + void exitConstantExpression(Java8Parser.ConstantExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#expression}. + * @param ctx the parse tree + */ + void enterExpression(Java8Parser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#expression}. + * @param ctx the parse tree + */ + void exitExpression(Java8Parser.ExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#lambdaExpression}. + * @param ctx the parse tree + */ + void enterLambdaExpression(Java8Parser.LambdaExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#lambdaExpression}. + * @param ctx the parse tree + */ + void exitLambdaExpression(Java8Parser.LambdaExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#lambdaParameters}. + * @param ctx the parse tree + */ + void enterLambdaParameters(Java8Parser.LambdaParametersContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#lambdaParameters}. + * @param ctx the parse tree + */ + void exitLambdaParameters(Java8Parser.LambdaParametersContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#inferredFormalParameterList}. + * @param ctx the parse tree + */ + void enterInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#inferredFormalParameterList}. + * @param ctx the parse tree + */ + void exitInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#lambdaBody}. + * @param ctx the parse tree + */ + void enterLambdaBody(Java8Parser.LambdaBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#lambdaBody}. + * @param ctx the parse tree + */ + void exitLambdaBody(Java8Parser.LambdaBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#assignmentExpression}. + * @param ctx the parse tree + */ + void enterAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#assignmentExpression}. + * @param ctx the parse tree + */ + void exitAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#assignment}. + * @param ctx the parse tree + */ + void enterAssignment(Java8Parser.AssignmentContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#assignment}. + * @param ctx the parse tree + */ + void exitAssignment(Java8Parser.AssignmentContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#leftHandSide}. + * @param ctx the parse tree + */ + void enterLeftHandSide(Java8Parser.LeftHandSideContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#leftHandSide}. + * @param ctx the parse tree + */ + void exitLeftHandSide(Java8Parser.LeftHandSideContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#assignmentOperator}. + * @param ctx the parse tree + */ + void enterAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#assignmentOperator}. + * @param ctx the parse tree + */ + void exitAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#conditionalExpression}. + * @param ctx the parse tree + */ + void enterConditionalExpression(Java8Parser.ConditionalExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#conditionalExpression}. + * @param ctx the parse tree + */ + void exitConditionalExpression(Java8Parser.ConditionalExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#conditionalOrExpression}. + * @param ctx the parse tree + */ + void enterConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#conditionalOrExpression}. + * @param ctx the parse tree + */ + void exitConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#conditionalAndExpression}. + * @param ctx the parse tree + */ + void enterConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#conditionalAndExpression}. + * @param ctx the parse tree + */ + void exitConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#inclusiveOrExpression}. + * @param ctx the parse tree + */ + void enterInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#inclusiveOrExpression}. + * @param ctx the parse tree + */ + void exitInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#exclusiveOrExpression}. + * @param ctx the parse tree + */ + void enterExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#exclusiveOrExpression}. + * @param ctx the parse tree + */ + void exitExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#andExpression}. + * @param ctx the parse tree + */ + void enterAndExpression(Java8Parser.AndExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#andExpression}. + * @param ctx the parse tree + */ + void exitAndExpression(Java8Parser.AndExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#equalityExpression}. + * @param ctx the parse tree + */ + void enterEqualityExpression(Java8Parser.EqualityExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#equalityExpression}. + * @param ctx the parse tree + */ + void exitEqualityExpression(Java8Parser.EqualityExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#relationalExpression}. + * @param ctx the parse tree + */ + void enterRelationalExpression(Java8Parser.RelationalExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#relationalExpression}. + * @param ctx the parse tree + */ + void exitRelationalExpression(Java8Parser.RelationalExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#shiftExpression}. + * @param ctx the parse tree + */ + void enterShiftExpression(Java8Parser.ShiftExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#shiftExpression}. + * @param ctx the parse tree + */ + void exitShiftExpression(Java8Parser.ShiftExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#additiveExpression}. + * @param ctx the parse tree + */ + void enterAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#additiveExpression}. + * @param ctx the parse tree + */ + void exitAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#multiplicativeExpression}. + * @param ctx the parse tree + */ + void enterMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#multiplicativeExpression}. + * @param ctx the parse tree + */ + void exitMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unaryExpression}. + * @param ctx the parse tree + */ + void enterUnaryExpression(Java8Parser.UnaryExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unaryExpression}. + * @param ctx the parse tree + */ + void exitUnaryExpression(Java8Parser.UnaryExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#preIncrementExpression}. + * @param ctx the parse tree + */ + void enterPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#preIncrementExpression}. + * @param ctx the parse tree + */ + void exitPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#preDecrementExpression}. + * @param ctx the parse tree + */ + void enterPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#preDecrementExpression}. + * @param ctx the parse tree + */ + void exitPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}. + * @param ctx the parse tree + */ + void enterUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}. + * @param ctx the parse tree + */ + void exitUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#postfixExpression}. + * @param ctx the parse tree + */ + void enterPostfixExpression(Java8Parser.PostfixExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#postfixExpression}. + * @param ctx the parse tree + */ + void exitPostfixExpression(Java8Parser.PostfixExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression}. + * @param ctx the parse tree + */ + void enterPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression}. + * @param ctx the parse tree + */ + void exitPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}. + * @param ctx the parse tree + */ + void enterPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}. + * @param ctx the parse tree + */ + void exitPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression}. + * @param ctx the parse tree + */ + void enterPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression}. + * @param ctx the parse tree + */ + void exitPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}. + * @param ctx the parse tree + */ + void enterPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}. + * @param ctx the parse tree + */ + void exitPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java8Parser#castExpression}. + * @param ctx the parse tree + */ + void enterCastExpression(Java8Parser.CastExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#castExpression}. + * @param ctx the parse tree + */ + void exitCastExpression(Java8Parser.CastExpressionContext ctx); +} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java new file mode 100644 index 00000000..398dd5f8 --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java @@ -0,0 +1,18764 @@ +// Generated from Java8.g4 by ANTLR 4.7 +package de.dhbwstuttgart.parser.antlr; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class Java8Parser extends Parser { + static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, + CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, + ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, + IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, + LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, + RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, + THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, + WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, + CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, + LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, + ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, + LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, + MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, + ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, + OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, + URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, + LINE_COMMENT=108; + public static final int + RULE_literal = 0, RULE_type = 1, RULE_primitiveType = 2, RULE_numericType = 3, + RULE_integralType = 4, RULE_floatingPointType = 5, RULE_referenceType = 6, + RULE_classOrInterfaceType = 7, RULE_classType = 8, RULE_classType_lf_classOrInterfaceType = 9, + RULE_classType_lfno_classOrInterfaceType = 10, RULE_interfaceType = 11, + RULE_interfaceType_lf_classOrInterfaceType = 12, RULE_interfaceType_lfno_classOrInterfaceType = 13, + RULE_typeVariable = 14, RULE_arrayType = 15, RULE_dims = 16, RULE_typeParameter = 17, + RULE_typeParameterModifier = 18, RULE_typeBound = 19, RULE_additionalBound = 20, + RULE_typeArguments = 21, RULE_typeArgumentList = 22, RULE_typeArgument = 23, + RULE_wildcard = 24, RULE_wildcardBounds = 25, RULE_packageName = 26, RULE_typeName = 27, + RULE_packageOrTypeName = 28, RULE_expressionName = 29, RULE_methodName = 30, + RULE_ambiguousName = 31, RULE_compilationUnit = 32, RULE_packageDeclaration = 33, + RULE_packageModifier = 34, RULE_importDeclaration = 35, RULE_singleTypeImportDeclaration = 36, + RULE_typeImportOnDemandDeclaration = 37, RULE_singleStaticImportDeclaration = 38, + RULE_staticImportOnDemandDeclaration = 39, RULE_typeDeclaration = 40, + RULE_classDeclaration = 41, RULE_normalClassDeclaration = 42, RULE_classModifier = 43, + RULE_typeParameters = 44, RULE_typeParameterList = 45, RULE_superclass = 46, + RULE_superinterfaces = 47, RULE_interfaceTypeList = 48, RULE_classBody = 49, + RULE_classBodyDeclaration = 50, RULE_classMemberDeclaration = 51, RULE_fieldDeclaration = 52, + RULE_fieldModifier = 53, RULE_variableDeclaratorList = 54, RULE_variableDeclarator = 55, + RULE_variableDeclaratorId = 56, RULE_variableInitializer = 57, RULE_unannType = 58, + RULE_unannPrimitiveType = 59, RULE_unannReferenceType = 60, RULE_unannClassOrInterfaceType = 61, + RULE_unannClassType = 62, RULE_unannClassType_lf_unannClassOrInterfaceType = 63, + RULE_unannClassType_lfno_unannClassOrInterfaceType = 64, RULE_unannInterfaceType = 65, + RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 66, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 67, + RULE_unannTypeVariable = 68, RULE_unannArrayType = 69, RULE_methodDeclaration = 70, + RULE_methodModifier = 71, RULE_methodHeader = 72, RULE_result = 73, RULE_methodDeclarator = 74, + RULE_formalParameterList = 75, RULE_formalParameters = 76, RULE_formalParameter = 77, + RULE_variableModifier = 78, RULE_lastFormalParameter = 79, RULE_receiverParameter = 80, + RULE_throws_ = 81, RULE_exceptionTypeList = 82, RULE_exceptionType = 83, + RULE_methodBody = 84, RULE_instanceInitializer = 85, RULE_staticInitializer = 86, + RULE_constructorDeclaration = 87, RULE_constructorModifier = 88, RULE_constructorDeclarator = 89, + RULE_simpleTypeName = 90, RULE_constructorBody = 91, RULE_explicitConstructorInvocation = 92, + RULE_enumDeclaration = 93, RULE_enumBody = 94, RULE_enumConstantList = 95, + RULE_enumConstant = 96, RULE_enumConstantModifier = 97, RULE_enumBodyDeclarations = 98, + RULE_interfaceDeclaration = 99, RULE_normalInterfaceDeclaration = 100, + RULE_interfaceModifier = 101, RULE_extendsInterfaces = 102, RULE_interfaceBody = 103, + RULE_interfaceMemberDeclaration = 104, RULE_constantDeclaration = 105, + RULE_constantModifier = 106, RULE_interfaceMethodDeclaration = 107, RULE_interfaceMethodModifier = 108, + RULE_annotationTypeDeclaration = 109, RULE_annotationTypeBody = 110, RULE_annotationTypeMemberDeclaration = 111, + RULE_annotationTypeElementDeclaration = 112, RULE_annotationTypeElementModifier = 113, + RULE_defaultValue = 114, RULE_annotation = 115, RULE_normalAnnotation = 116, + RULE_elementValuePairList = 117, RULE_elementValuePair = 118, RULE_elementValue = 119, + RULE_elementValueArrayInitializer = 120, RULE_elementValueList = 121, + RULE_markerAnnotation = 122, RULE_singleElementAnnotation = 123, RULE_arrayInitializer = 124, + RULE_variableInitializerList = 125, RULE_block = 126, RULE_blockStatements = 127, + RULE_blockStatement = 128, RULE_localVariableDeclarationStatement = 129, + RULE_unannTypeOrAuto = 130, RULE_localVariableDeclaration = 131, RULE_statement = 132, + RULE_statementNoShortIf = 133, RULE_statementWithoutTrailingSubstatement = 134, + RULE_emptyStatement = 135, RULE_labeledStatement = 136, RULE_labeledStatementNoShortIf = 137, + RULE_expressionStatement = 138, RULE_statementExpression = 139, RULE_ifThenStatement = 140, + RULE_ifThenElseStatement = 141, RULE_ifThenElseStatementNoShortIf = 142, + RULE_assertStatement = 143, RULE_switchStatement = 144, RULE_switchBlock = 145, + RULE_switchBlockStatementGroup = 146, RULE_switchLabels = 147, RULE_switchLabel = 148, + RULE_enumConstantName = 149, RULE_whileStatement = 150, RULE_whileStatementNoShortIf = 151, + RULE_doStatement = 152, RULE_forStatement = 153, RULE_forStatementNoShortIf = 154, + RULE_basicForStatement = 155, RULE_basicForStatementNoShortIf = 156, RULE_forInit = 157, + RULE_forUpdate = 158, RULE_statementExpressionList = 159, RULE_enhancedForStatement = 160, + RULE_enhancedForStatementNoShortIf = 161, RULE_breakStatement = 162, RULE_continueStatement = 163, + RULE_returnStatement = 164, RULE_throwStatement = 165, RULE_synchronizedStatement = 166, + RULE_tryStatement = 167, RULE_catches = 168, RULE_catchClause = 169, RULE_catchFormalParameter = 170, + RULE_catchType = 171, RULE_finally_ = 172, RULE_tryWithResourcesStatement = 173, + RULE_resourceSpecification = 174, RULE_resourceList = 175, RULE_resource = 176, + RULE_primary = 177, RULE_primaryNoNewArray = 178, RULE_primaryNoNewArray_lf_arrayAccess = 179, + RULE_primaryNoNewArray_lfno_arrayAccess = 180, RULE_primaryNoNewArray_lf_primary = 181, + RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 182, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 183, + RULE_primaryNoNewArray_lfno_primary = 184, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 185, + RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 186, + RULE_classInstanceCreationExpression = 187, RULE_classInstanceCreationExpression_lf_primary = 188, + RULE_classInstanceCreationExpression_lfno_primary = 189, RULE_typeArgumentsOrDiamond = 190, + RULE_fieldAccess = 191, RULE_fieldAccess_lf_primary = 192, RULE_fieldAccess_lfno_primary = 193, + RULE_arrayAccess = 194, RULE_arrayAccess_lf_primary = 195, RULE_arrayAccess_lfno_primary = 196, + RULE_methodInvocation = 197, RULE_methodInvocation_lf_primary = 198, RULE_methodInvocation_lfno_primary = 199, + RULE_argumentList = 200, RULE_methodReference = 201, RULE_methodReference_lf_primary = 202, + RULE_methodReference_lfno_primary = 203, RULE_arrayCreationExpression = 204, + RULE_dimExprs = 205, RULE_dimExpr = 206, RULE_constantExpression = 207, + RULE_expression = 208, RULE_lambdaExpression = 209, RULE_lambdaParameters = 210, + RULE_inferredFormalParameterList = 211, RULE_lambdaBody = 212, RULE_assignmentExpression = 213, + RULE_assignment = 214, RULE_leftHandSide = 215, RULE_assignmentOperator = 216, + RULE_conditionalExpression = 217, RULE_conditionalOrExpression = 218, + RULE_conditionalAndExpression = 219, RULE_inclusiveOrExpression = 220, + RULE_exclusiveOrExpression = 221, RULE_andExpression = 222, RULE_equalityExpression = 223, + RULE_relationalExpression = 224, RULE_shiftExpression = 225, RULE_additiveExpression = 226, + RULE_multiplicativeExpression = 227, RULE_unaryExpression = 228, RULE_preIncrementExpression = 229, + RULE_preDecrementExpression = 230, RULE_unaryExpressionNotPlusMinus = 231, + RULE_postfixExpression = 232, RULE_postIncrementExpression = 233, RULE_postIncrementExpression_lf_postfixExpression = 234, + RULE_postDecrementExpression = 235, RULE_postDecrementExpression_lf_postfixExpression = 236, + RULE_castExpression = 237; + public static final String[] ruleNames = { + "literal", "type", "primitiveType", "numericType", "integralType", "floatingPointType", + "referenceType", "classOrInterfaceType", "classType", "classType_lf_classOrInterfaceType", + "classType_lfno_classOrInterfaceType", "interfaceType", "interfaceType_lf_classOrInterfaceType", + "interfaceType_lfno_classOrInterfaceType", "typeVariable", "arrayType", + "dims", "typeParameter", "typeParameterModifier", "typeBound", "additionalBound", + "typeArguments", "typeArgumentList", "typeArgument", "wildcard", "wildcardBounds", + "packageName", "typeName", "packageOrTypeName", "expressionName", "methodName", + "ambiguousName", "compilationUnit", "packageDeclaration", "packageModifier", + "importDeclaration", "singleTypeImportDeclaration", "typeImportOnDemandDeclaration", + "singleStaticImportDeclaration", "staticImportOnDemandDeclaration", "typeDeclaration", + "classDeclaration", "normalClassDeclaration", "classModifier", "typeParameters", + "typeParameterList", "superclass", "superinterfaces", "interfaceTypeList", + "classBody", "classBodyDeclaration", "classMemberDeclaration", "fieldDeclaration", + "fieldModifier", "variableDeclaratorList", "variableDeclarator", "variableDeclaratorId", + "variableInitializer", "unannType", "unannPrimitiveType", "unannReferenceType", + "unannClassOrInterfaceType", "unannClassType", "unannClassType_lf_unannClassOrInterfaceType", + "unannClassType_lfno_unannClassOrInterfaceType", "unannInterfaceType", + "unannInterfaceType_lf_unannClassOrInterfaceType", "unannInterfaceType_lfno_unannClassOrInterfaceType", + "unannTypeVariable", "unannArrayType", "methodDeclaration", "methodModifier", + "methodHeader", "result", "methodDeclarator", "formalParameterList", "formalParameters", + "formalParameter", "variableModifier", "lastFormalParameter", "receiverParameter", + "throws_", "exceptionTypeList", "exceptionType", "methodBody", "instanceInitializer", + "staticInitializer", "constructorDeclaration", "constructorModifier", + "constructorDeclarator", "simpleTypeName", "constructorBody", "explicitConstructorInvocation", + "enumDeclaration", "enumBody", "enumConstantList", "enumConstant", "enumConstantModifier", + "enumBodyDeclarations", "interfaceDeclaration", "normalInterfaceDeclaration", + "interfaceModifier", "extendsInterfaces", "interfaceBody", "interfaceMemberDeclaration", + "constantDeclaration", "constantModifier", "interfaceMethodDeclaration", + "interfaceMethodModifier", "annotationTypeDeclaration", "annotationTypeBody", + "annotationTypeMemberDeclaration", "annotationTypeElementDeclaration", + "annotationTypeElementModifier", "defaultValue", "annotation", "normalAnnotation", + "elementValuePairList", "elementValuePair", "elementValue", "elementValueArrayInitializer", + "elementValueList", "markerAnnotation", "singleElementAnnotation", "arrayInitializer", + "variableInitializerList", "block", "blockStatements", "blockStatement", + "localVariableDeclarationStatement", "unannTypeOrAuto", "localVariableDeclaration", + "statement", "statementNoShortIf", "statementWithoutTrailingSubstatement", + "emptyStatement", "labeledStatement", "labeledStatementNoShortIf", "expressionStatement", + "statementExpression", "ifThenStatement", "ifThenElseStatement", "ifThenElseStatementNoShortIf", + "assertStatement", "switchStatement", "switchBlock", "switchBlockStatementGroup", + "switchLabels", "switchLabel", "enumConstantName", "whileStatement", "whileStatementNoShortIf", + "doStatement", "forStatement", "forStatementNoShortIf", "basicForStatement", + "basicForStatementNoShortIf", "forInit", "forUpdate", "statementExpressionList", + "enhancedForStatement", "enhancedForStatementNoShortIf", "breakStatement", + "continueStatement", "returnStatement", "throwStatement", "synchronizedStatement", + "tryStatement", "catches", "catchClause", "catchFormalParameter", "catchType", + "finally_", "tryWithResourcesStatement", "resourceSpecification", "resourceList", + "resource", "primary", "primaryNoNewArray", "primaryNoNewArray_lf_arrayAccess", + "primaryNoNewArray_lfno_arrayAccess", "primaryNoNewArray_lf_primary", + "primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary", "primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary", + "primaryNoNewArray_lfno_primary", "primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary", + "primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary", "classInstanceCreationExpression", + "classInstanceCreationExpression_lf_primary", "classInstanceCreationExpression_lfno_primary", + "typeArgumentsOrDiamond", "fieldAccess", "fieldAccess_lf_primary", "fieldAccess_lfno_primary", + "arrayAccess", "arrayAccess_lf_primary", "arrayAccess_lfno_primary", "methodInvocation", + "methodInvocation_lf_primary", "methodInvocation_lfno_primary", "argumentList", + "methodReference", "methodReference_lf_primary", "methodReference_lfno_primary", + "arrayCreationExpression", "dimExprs", "dimExpr", "constantExpression", + "expression", "lambdaExpression", "lambdaParameters", "inferredFormalParameterList", + "lambdaBody", "assignmentExpression", "assignment", "leftHandSide", "assignmentOperator", + "conditionalExpression", "conditionalOrExpression", "conditionalAndExpression", + "inclusiveOrExpression", "exclusiveOrExpression", "andExpression", "equalityExpression", + "relationalExpression", "shiftExpression", "additiveExpression", "multiplicativeExpression", + "unaryExpression", "preIncrementExpression", "preDecrementExpression", + "unaryExpressionNotPlusMinus", "postfixExpression", "postIncrementExpression", + "postIncrementExpression_lf_postfixExpression", "postDecrementExpression", + "postDecrementExpression_lf_postfixExpression", "castExpression" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'var'", "'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, "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", "ARROW", "COLONCOLON", + "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] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "Java8.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public Java8Parser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class LiteralContext extends ParserRuleContext { + public TerminalNode IntegerLiteral() { return getToken(Java8Parser.IntegerLiteral, 0); } + public TerminalNode FloatingPointLiteral() { return getToken(Java8Parser.FloatingPointLiteral, 0); } + public TerminalNode BooleanLiteral() { return getToken(Java8Parser.BooleanLiteral, 0); } + public TerminalNode CharacterLiteral() { return getToken(Java8Parser.CharacterLiteral, 0); } + public TerminalNode StringLiteral() { return getToken(Java8Parser.StringLiteral, 0); } + public TerminalNode NullLiteral() { return getToken(Java8Parser.NullLiteral, 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 Java8Listener ) ((Java8Listener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLiteral(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_literal); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(476); + _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 TypeContext extends ParserRuleContext { + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public TypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitType(this); + } + } + + public final TypeContext type() throws RecognitionException { + TypeContext _localctx = new TypeContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_type); + try { + setState(480); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(478); + primitiveType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(479); + referenceType(); + } + break; + } + } + 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 NumericTypeContext numericType() { + return getRuleContext(NumericTypeContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + 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 Java8Listener ) ((Java8Listener)listener).enterPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimitiveType(this); + } + } + + public final PrimitiveTypeContext primitiveType() throws RecognitionException { + PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_primitiveType); + int _la; + try { + setState(496); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(485); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(482); + annotation(); + } + } + setState(487); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(488); + numericType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(492); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(489); + annotation(); + } + } + setState(494); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(495); + match(BOOLEAN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NumericTypeContext extends ParserRuleContext { + public IntegralTypeContext integralType() { + return getRuleContext(IntegralTypeContext.class,0); + } + public FloatingPointTypeContext floatingPointType() { + return getRuleContext(FloatingPointTypeContext.class,0); + } + public NumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNumericType(this); + } + } + + public final NumericTypeContext numericType() throws RecognitionException { + NumericTypeContext _localctx = new NumericTypeContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_numericType); + try { + setState(500); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case INT: + case LONG: + case SHORT: + enterOuterAlt(_localctx, 1); + { + setState(498); + integralType(); + } + break; + case DOUBLE: + case FLOAT: + enterOuterAlt(_localctx, 2); + { + setState(499); + floatingPointType(); + } + 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 IntegralTypeContext extends ParserRuleContext { + public IntegralTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_integralType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIntegralType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIntegralType(this); + } + } + + public final IntegralTypeContext integralType() throws RecognitionException { + IntegralTypeContext _localctx = new IntegralTypeContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_integralType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(502); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BYTE) | (1L << CHAR) | (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 FloatingPointTypeContext extends ParserRuleContext { + public FloatingPointTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floatingPointType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFloatingPointType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFloatingPointType(this); + } + } + + public final FloatingPointTypeContext floatingPointType() throws RecognitionException { + FloatingPointTypeContext _localctx = new FloatingPointTypeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_floatingPointType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(504); + _la = _input.LA(1); + if ( !(_la==DOUBLE || _la==FLOAT) ) { + _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 ReferenceTypeContext extends ParserRuleContext { + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public TypeVariableContext typeVariable() { + return getRuleContext(TypeVariableContext.class,0); + } + public ArrayTypeContext arrayType() { + return getRuleContext(ArrayTypeContext.class,0); + } + public ReferenceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_referenceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReferenceType(this); + } + } + + public final ReferenceTypeContext referenceType() throws RecognitionException { + ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_referenceType); + try { + setState(509); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(506); + classOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(507); + typeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(508); + arrayType(); + } + break; + } + } + 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 ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() { + return getRuleContext(ClassType_lfno_classOrInterfaceTypeContext.class,0); + } + public InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() { + return getRuleContext(InterfaceType_lfno_classOrInterfaceTypeContext.class,0); + } + public List classType_lf_classOrInterfaceType() { + return getRuleContexts(ClassType_lf_classOrInterfaceTypeContext.class); + } + public ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType(int i) { + return getRuleContext(ClassType_lf_classOrInterfaceTypeContext.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 Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceType(this); + } + } + + public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { + ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_classOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(513); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + setState(511); + classType_lfno_classOrInterfaceType(); + } + break; + case 2: + { + setState(512); + interfaceType_lfno_classOrInterfaceType(); + } + break; + } + setState(518); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(515); + classType_lf_classOrInterfaceType(); + } + } + } + setState(520); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public ClassTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType(this); + } + } + + public final ClassTypeContext classType() throws RecognitionException { + ClassTypeContext _localctx = new ClassTypeContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_classType); + int _la; + try { + setState(543); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(524); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(521); + annotation(); + } + } + setState(526); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(527); + match(Identifier); + setState(529); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(528); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(531); + classOrInterfaceType(); + setState(532); + match(DOT); + setState(536); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(533); + annotation(); + } + } + setState(538); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(539); + match(Identifier); + setState(541); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(540); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassType_lf_classOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ClassType_lf_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classType_lf_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lf_classOrInterfaceType(this); + } + } + + public final ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() throws RecognitionException { + ClassType_lf_classOrInterfaceTypeContext _localctx = new ClassType_lf_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_classType_lf_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(545); + match(DOT); + setState(549); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(546); + annotation(); + } + } + setState(551); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(552); + match(Identifier); + setState(554); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + { + setState(553); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassType_lfno_classOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ClassType_lfno_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classType_lfno_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lfno_classOrInterfaceType(this); + } + } + + public final ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() throws RecognitionException { + ClassType_lfno_classOrInterfaceTypeContext _localctx = new ClassType_lfno_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_classType_lfno_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(559); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(556); + annotation(); + } + } + setState(561); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(562); + match(Identifier); + setState(564); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + { + setState(563); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceTypeContext extends ParserRuleContext { + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public InterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType(this); + } + } + + public final InterfaceTypeContext interfaceType() throws RecognitionException { + InterfaceTypeContext _localctx = new InterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_interfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(566); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceType_lf_classOrInterfaceTypeContext extends ParserRuleContext { + public ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() { + return getRuleContext(ClassType_lf_classOrInterfaceTypeContext.class,0); + } + public InterfaceType_lf_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceType_lf_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lf_classOrInterfaceType(this); + } + } + + public final InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType() throws RecognitionException { + InterfaceType_lf_classOrInterfaceTypeContext _localctx = new InterfaceType_lf_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_interfaceType_lf_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(568); + classType_lf_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceType_lfno_classOrInterfaceTypeContext extends ParserRuleContext { + public ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() { + return getRuleContext(ClassType_lfno_classOrInterfaceTypeContext.class,0); + } + public InterfaceType_lfno_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceType_lfno_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lfno_classOrInterfaceType(this); + } + } + + public final InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() throws RecognitionException { + InterfaceType_lfno_classOrInterfaceTypeContext _localctx = new InterfaceType_lfno_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_interfaceType_lfno_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(570); + classType_lfno_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeVariableContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeVariable(this); + } + } + + public final TypeVariableContext typeVariable() throws RecognitionException { + TypeVariableContext _localctx = new TypeVariableContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_typeVariable); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(575); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(572); + annotation(); + } + } + setState(577); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(578); + match(Identifier); + } + } + 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 TypeVariableContext typeVariable() { + return getRuleContext(TypeVariableContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayType(this); + } + } + + public final ArrayTypeContext arrayType() throws RecognitionException { + ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_arrayType); + try { + setState(589); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(580); + primitiveType(); + setState(581); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(583); + classOrInterfaceType(); + setState(584); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(586); + typeVariable(); + setState(587); + 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 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 Java8Listener ) ((Java8Listener)listener).enterDims(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDims(this); + } + } + + public final DimsContext dims() throws RecognitionException { + DimsContext _localctx = new DimsContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_dims); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(594); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(591); + annotation(); + } + } + setState(596); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(597); + match(LBRACK); + setState(598); + match(RBRACK); + setState(609); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(602); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(599); + annotation(); + } + } + setState(604); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(605); + match(LBRACK); + setState(606); + match(RBRACK); + } + } + } + setState(611); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + } + } + } + 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(Java8Parser.Identifier, 0); } + public List typeParameterModifier() { + return getRuleContexts(TypeParameterModifierContext.class); + } + public TypeParameterModifierContext typeParameterModifier(int i) { + return getRuleContext(TypeParameterModifierContext.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 Java8Listener ) ((Java8Listener)listener).enterTypeParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameter(this); + } + } + + public final TypeParameterContext typeParameter() throws RecognitionException { + TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_typeParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(615); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(612); + typeParameterModifier(); + } + } + setState(617); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(618); + match(Identifier); + setState(620); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(619); + typeBound(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeParameterModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TypeParameterModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameterModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterModifier(this); + } + } + + public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { + TypeParameterModifierContext _localctx = new TypeParameterModifierContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_typeParameterModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(622); + annotation(); + } + } + 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 TypeVariableContext typeVariable() { + return getRuleContext(TypeVariableContext.class,0); + } + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public List additionalBound() { + return getRuleContexts(AdditionalBoundContext.class); + } + public AdditionalBoundContext additionalBound(int i) { + return getRuleContext(AdditionalBoundContext.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 Java8Listener ) ((Java8Listener)listener).enterTypeBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeBound(this); + } + } + + public final TypeBoundContext typeBound() throws RecognitionException { + TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_typeBound); + int _la; + try { + setState(634); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(624); + match(EXTENDS); + setState(625); + typeVariable(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(626); + match(EXTENDS); + setState(627); + classOrInterfaceType(); + setState(631); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(628); + additionalBound(); + } + } + setState(633); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AdditionalBoundContext extends ParserRuleContext { + public InterfaceTypeContext interfaceType() { + return getRuleContext(InterfaceTypeContext.class,0); + } + public AdditionalBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additionalBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditionalBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditionalBound(this); + } + } + + public final AdditionalBoundContext additionalBound() throws RecognitionException { + AdditionalBoundContext _localctx = new AdditionalBoundContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_additionalBound); + try { + enterOuterAlt(_localctx, 1); + { + setState(636); + match(BITAND); + setState(637); + interfaceType(); + } + } + 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 TypeArgumentListContext typeArgumentList() { + return getRuleContext(TypeArgumentListContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArguments(this); + } + } + + public final TypeArgumentsContext typeArguments() throws RecognitionException { + TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_typeArguments); + try { + enterOuterAlt(_localctx, 1); + { + setState(639); + match(LT); + setState(640); + typeArgumentList(); + setState(641); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeArgumentListContext extends ParserRuleContext { + public List typeArgument() { + return getRuleContexts(TypeArgumentContext.class); + } + public TypeArgumentContext typeArgument(int i) { + return getRuleContext(TypeArgumentContext.class,i); + } + public TypeArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentList(this); + } + } + + public final TypeArgumentListContext typeArgumentList() throws RecognitionException { + TypeArgumentListContext _localctx = new TypeArgumentListContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_typeArgumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(643); + typeArgument(); + setState(648); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(644); + match(COMMA); + setState(645); + typeArgument(); + } + } + setState(650); + _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 TypeArgumentContext extends ParserRuleContext { + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public WildcardContext wildcard() { + return getRuleContext(WildcardContext.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 Java8Listener ) ((Java8Listener)listener).enterTypeArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgument(this); + } + } + + public final TypeArgumentContext typeArgument() throws RecognitionException { + TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_typeArgument); + try { + setState(653); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(651); + referenceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(652); + wildcard(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WildcardContext extends ParserRuleContext { + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public WildcardBoundsContext wildcardBounds() { + return getRuleContext(WildcardBoundsContext.class,0); + } + public WildcardContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wildcard; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcard(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcard(this); + } + } + + public final WildcardContext wildcard() throws RecognitionException { + WildcardContext _localctx = new WildcardContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_wildcard); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(658); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(655); + annotation(); + } + } + setState(660); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(661); + match(QUESTION); + setState(663); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS || _la==SUPER) { + { + setState(662); + wildcardBounds(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WildcardBoundsContext extends ParserRuleContext { + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public WildcardBoundsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wildcardBounds; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcardBounds(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcardBounds(this); + } + } + + public final WildcardBoundsContext wildcardBounds() throws RecognitionException { + WildcardBoundsContext _localctx = new WildcardBoundsContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_wildcardBounds); + try { + setState(669); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXTENDS: + enterOuterAlt(_localctx, 1); + { + setState(665); + match(EXTENDS); + setState(666); + referenceType(); + } + break; + case SUPER: + enterOuterAlt(_localctx, 2); + { + setState(667); + match(SUPER); + setState(668); + referenceType(); + } + 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 PackageNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageNameContext packageName() { + return getRuleContext(PackageNameContext.class,0); + } + public PackageNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageName(this); + } + } + + public final PackageNameContext packageName() throws RecognitionException { + return packageName(0); + } + + private PackageNameContext packageName(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PackageNameContext _localctx = new PackageNameContext(_ctx, _parentState); + PackageNameContext _prevctx = _localctx; + int _startState = 52; + enterRecursionRule(_localctx, 52, RULE_packageName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(672); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(679); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageName); + setState(674); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(675); + match(DOT); + setState(676); + match(Identifier); + } + } + } + setState(681); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class TypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeName(this); + } + } + + public final TypeNameContext typeName() throws RecognitionException { + TypeNameContext _localctx = new TypeNameContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_typeName); + try { + setState(687); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(682); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(683); + packageOrTypeName(0); + setState(684); + match(DOT); + setState(685); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PackageOrTypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public PackageOrTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageOrTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageOrTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageOrTypeName(this); + } + } + + public final PackageOrTypeNameContext packageOrTypeName() throws RecognitionException { + return packageOrTypeName(0); + } + + private PackageOrTypeNameContext packageOrTypeName(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PackageOrTypeNameContext _localctx = new PackageOrTypeNameContext(_ctx, _parentState); + PackageOrTypeNameContext _prevctx = _localctx; + int _startState = 56; + enterRecursionRule(_localctx, 56, RULE_packageOrTypeName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(690); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(697); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageOrTypeNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageOrTypeName); + setState(692); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(693); + match(DOT); + setState(694); + match(Identifier); + } + } + } + setState(699); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ExpressionNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public ExpressionNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionName(this); + } + } + + public final ExpressionNameContext expressionName() throws RecognitionException { + ExpressionNameContext _localctx = new ExpressionNameContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_expressionName); + try { + setState(705); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(700); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(701); + ambiguousName(0); + setState(702); + match(DOT); + setState(703); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public MethodNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodName(this); + } + } + + public final MethodNameContext methodName() throws RecognitionException { + MethodNameContext _localctx = new MethodNameContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_methodName); + try { + enterOuterAlt(_localctx, 1); + { + setState(707); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AmbiguousNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public AmbiguousNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ambiguousName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAmbiguousName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAmbiguousName(this); + } + } + + public final AmbiguousNameContext ambiguousName() throws RecognitionException { + return ambiguousName(0); + } + + private AmbiguousNameContext ambiguousName(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + AmbiguousNameContext _localctx = new AmbiguousNameContext(_ctx, _parentState); + AmbiguousNameContext _prevctx = _localctx; + int _startState = 62; + enterRecursionRule(_localctx, 62, RULE_ambiguousName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(710); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(717); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AmbiguousNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_ambiguousName); + setState(712); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(713); + match(DOT); + setState(714); + match(Identifier); + } + } + } + setState(719); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class CompilationUnitContext extends ParserRuleContext { + public TerminalNode EOF() { return getToken(Java8Parser.EOF, 0); } + public PackageDeclarationContext packageDeclaration() { + return getRuleContext(PackageDeclarationContext.class,0); + } + public List importDeclaration() { + return getRuleContexts(ImportDeclarationContext.class); + } + public ImportDeclarationContext importDeclaration(int i) { + return getRuleContext(ImportDeclarationContext.class,i); + } + public List 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 Java8Listener ) ((Java8Listener)listener).enterCompilationUnit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCompilationUnit(this); + } + } + + public final CompilationUnitContext compilationUnit() throws RecognitionException { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_compilationUnit); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(721); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { + case 1: + { + setState(720); + packageDeclaration(); + } + break; + } + setState(726); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==IMPORT) { + { + { + setState(723); + importDeclaration(); + } + } + setState(728); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(732); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==SEMI || _la==AT) { + { + { + setState(729); + typeDeclaration(); + } + } + setState(734); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(735); + 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 List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public List packageModifier() { + return getRuleContexts(PackageModifierContext.class); + } + public PackageModifierContext packageModifier(int i) { + return getRuleContext(PackageModifierContext.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 Java8Listener ) ((Java8Listener)listener).enterPackageDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageDeclaration(this); + } + } + + public final PackageDeclarationContext packageDeclaration() throws RecognitionException { + PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_packageDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(740); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(737); + packageModifier(); + } + } + setState(742); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(743); + match(PACKAGE); + setState(744); + match(Identifier); + setState(749); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(745); + match(DOT); + setState(746); + match(Identifier); + } + } + setState(751); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(752); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PackageModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public PackageModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageModifier(this); + } + } + + public final PackageModifierContext packageModifier() throws RecognitionException { + PackageModifierContext _localctx = new PackageModifierContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_packageModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(754); + annotation(); + } + } + 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 SingleTypeImportDeclarationContext singleTypeImportDeclaration() { + return getRuleContext(SingleTypeImportDeclarationContext.class,0); + } + public TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() { + return getRuleContext(TypeImportOnDemandDeclarationContext.class,0); + } + public SingleStaticImportDeclarationContext singleStaticImportDeclaration() { + return getRuleContext(SingleStaticImportDeclarationContext.class,0); + } + public StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() { + return getRuleContext(StaticImportOnDemandDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitImportDeclaration(this); + } + } + + public final ImportDeclarationContext importDeclaration() throws RecognitionException { + ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_importDeclaration); + try { + setState(760); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(756); + singleTypeImportDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(757); + typeImportOnDemandDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(758); + singleStaticImportDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(759); + staticImportOnDemandDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SingleTypeImportDeclarationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public SingleTypeImportDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleTypeImportDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleTypeImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleTypeImportDeclaration(this); + } + } + + public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { + SingleTypeImportDeclarationContext _localctx = new SingleTypeImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_singleTypeImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(762); + match(IMPORT); + setState(763); + typeName(); + setState(764); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeImportOnDemandDeclarationContext extends ParserRuleContext { + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TypeImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeImportOnDemandDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeImportOnDemandDeclaration(this); + } + } + + public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { + TypeImportOnDemandDeclarationContext _localctx = new TypeImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_typeImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(766); + match(IMPORT); + setState(767); + packageOrTypeName(0); + setState(768); + match(DOT); + setState(769); + match(MUL); + setState(770); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SingleStaticImportDeclarationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public SingleStaticImportDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleStaticImportDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleStaticImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleStaticImportDeclaration(this); + } + } + + public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { + SingleStaticImportDeclarationContext _localctx = new SingleStaticImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_singleStaticImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(772); + match(IMPORT); + setState(773); + match(STATIC); + setState(774); + typeName(); + setState(775); + match(DOT); + setState(776); + match(Identifier); + setState(777); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StaticImportOnDemandDeclarationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public StaticImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_staticImportOnDemandDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticImportOnDemandDeclaration(this); + } + } + + public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { + StaticImportOnDemandDeclarationContext _localctx = new StaticImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_staticImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(779); + match(IMPORT); + setState(780); + match(STATIC); + setState(781); + typeName(); + setState(782); + match(DOT); + setState(783); + match(MUL); + setState(784); + 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 InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeDeclaration(this); + } + } + + public final TypeDeclarationContext typeDeclaration() throws RecognitionException { + TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_typeDeclaration); + try { + setState(789); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(786); + classDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(787); + interfaceDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(788); + match(SEMI); + } + break; + } + } + 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 NormalClassDeclarationContext normalClassDeclaration() { + return getRuleContext(NormalClassDeclarationContext.class,0); + } + public EnumDeclarationContext enumDeclaration() { + return getRuleContext(EnumDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassDeclaration(this); + } + } + + public final ClassDeclarationContext classDeclaration() throws RecognitionException { + ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_classDeclaration); + try { + setState(793); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(791); + normalClassDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(792); + enumDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NormalClassDeclarationContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public List classModifier() { + return getRuleContexts(ClassModifierContext.class); + } + public ClassModifierContext classModifier(int i) { + return getRuleContext(ClassModifierContext.class,i); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public SuperclassContext superclass() { + return getRuleContext(SuperclassContext.class,0); + } + public SuperinterfacesContext superinterfaces() { + return getRuleContext(SuperinterfacesContext.class,0); + } + public NormalClassDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalClassDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalClassDeclaration(this); + } + } + + public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { + NormalClassDeclarationContext _localctx = new NormalClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_normalClassDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(798); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { + { + { + setState(795); + classModifier(); + } + } + setState(800); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(801); + match(CLASS); + setState(802); + match(Identifier); + setState(804); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(803); + typeParameters(); + } + } + + setState(807); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(806); + superclass(); + } + } + + setState(810); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(809); + superinterfaces(); + } + } + + setState(812); + classBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public ClassModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassModifier(this); + } + } + + public final ClassModifierContext classModifier() throws RecognitionException { + ClassModifierContext _localctx = new ClassModifierContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_classModifier); + try { + setState(822); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(814); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(815); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(816); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(817); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(818); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(819); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(820); + match(FINAL); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 8); + { + setState(821); + match(STRICTFP); + } + 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 TypeParametersContext extends ParserRuleContext { + public TypeParameterListContext typeParameterList() { + return getRuleContext(TypeParameterListContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterTypeParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameters(this); + } + } + + public final TypeParametersContext typeParameters() throws RecognitionException { + TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_typeParameters); + try { + enterOuterAlt(_localctx, 1); + { + setState(824); + match(LT); + setState(825); + typeParameterList(); + setState(826); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeParameterListContext extends ParserRuleContext { + public List typeParameter() { + return getRuleContexts(TypeParameterContext.class); + } + public TypeParameterContext typeParameter(int i) { + return getRuleContext(TypeParameterContext.class,i); + } + public TypeParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterList(this); + } + } + + public final TypeParameterListContext typeParameterList() throws RecognitionException { + TypeParameterListContext _localctx = new TypeParameterListContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_typeParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(828); + typeParameter(); + setState(833); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(829); + match(COMMA); + setState(830); + typeParameter(); + } + } + setState(835); + _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 SuperclassContext extends ParserRuleContext { + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public SuperclassContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superclass; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperclass(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperclass(this); + } + } + + public final SuperclassContext superclass() throws RecognitionException { + SuperclassContext _localctx = new SuperclassContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_superclass); + try { + enterOuterAlt(_localctx, 1); + { + setState(836); + match(EXTENDS); + setState(837); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SuperinterfacesContext extends ParserRuleContext { + public InterfaceTypeListContext interfaceTypeList() { + return getRuleContext(InterfaceTypeListContext.class,0); + } + public SuperinterfacesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superinterfaces; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperinterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperinterfaces(this); + } + } + + public final SuperinterfacesContext superinterfaces() throws RecognitionException { + SuperinterfacesContext _localctx = new SuperinterfacesContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_superinterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(839); + match(IMPLEMENTS); + setState(840); + interfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceTypeListContext extends ParserRuleContext { + public List interfaceType() { + return getRuleContexts(InterfaceTypeContext.class); + } + public InterfaceTypeContext interfaceType(int i) { + return getRuleContext(InterfaceTypeContext.class,i); + } + public InterfaceTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceTypeList(this); + } + } + + public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { + InterfaceTypeListContext _localctx = new InterfaceTypeListContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_interfaceTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(842); + interfaceType(); + setState(847); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(843); + match(COMMA); + setState(844); + interfaceType(); + } + } + setState(849); + _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 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 Java8Listener ) ((Java8Listener)listener).enterClassBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBody(this); + } + } + + public final ClassBodyContext classBody() throws RecognitionException { + ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_classBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(850); + match(LBRACE); + setState(854); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (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 - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + { + setState(851); + classBodyDeclaration(); + } + } + setState(856); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(857); + 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 ClassMemberDeclarationContext classMemberDeclaration() { + return getRuleContext(ClassMemberDeclarationContext.class,0); + } + public InstanceInitializerContext instanceInitializer() { + return getRuleContext(InstanceInitializerContext.class,0); + } + public StaticInitializerContext staticInitializer() { + return getRuleContext(StaticInitializerContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterClassBodyDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBodyDeclaration(this); + } + } + + public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { + ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_classBodyDeclaration); + try { + setState(862); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(859); + classMemberDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(860); + instanceInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(861); + staticInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassMemberDeclarationContext extends ParserRuleContext { + public FieldDeclarationContext fieldDeclaration() { + return getRuleContext(FieldDeclarationContext.class,0); + } + public MethodDeclarationContext methodDeclaration() { + return getRuleContext(MethodDeclarationContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public ClassMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassMemberDeclaration(this); + } + } + + public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { + ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_classMemberDeclaration); + try { + setState(869); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(864); + fieldDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(865); + methodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(866); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(867); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(868); + match(SEMI); + } + break; + } + } + 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 VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public List fieldModifier() { + return getRuleContexts(FieldModifierContext.class); + } + public FieldModifierContext fieldModifier(int i) { + return getRuleContext(FieldModifierContext.class,i); + } + public UnannTypeOrAutoContext unannTypeOrAuto() { + return getRuleContext(UnannTypeOrAutoContext.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 Java8Listener ) ((Java8Listener)listener).enterFieldDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldDeclaration(this); + } + } + + public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { + FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_fieldDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(874); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0) || _la==AT) { + { + { + setState(871); + fieldModifier(); + } + } + setState(876); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(878); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,55,_ctx) ) { + case 1: + { + setState(877); + unannTypeOrAuto(); + } + break; + } + setState(880); + variableDeclaratorList(); + setState(881); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FieldModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public FieldModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldModifier(this); + } + } + + public final FieldModifierContext fieldModifier() throws RecognitionException { + FieldModifierContext _localctx = new FieldModifierContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_fieldModifier); + try { + setState(891); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(883); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(884); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(885); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(886); + match(PRIVATE); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(887); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 6); + { + setState(888); + match(FINAL); + } + break; + case TRANSIENT: + enterOuterAlt(_localctx, 7); + { + setState(889); + match(TRANSIENT); + } + break; + case VOLATILE: + enterOuterAlt(_localctx, 8); + { + setState(890); + match(VOLATILE); + } + 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 VariableDeclaratorListContext extends ParserRuleContext { + public List variableDeclarator() { + return getRuleContexts(VariableDeclaratorContext.class); + } + public VariableDeclaratorContext variableDeclarator(int i) { + return getRuleContext(VariableDeclaratorContext.class,i); + } + public VariableDeclaratorListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclaratorList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorList(this); + } + } + + public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { + VariableDeclaratorListContext _localctx = new VariableDeclaratorListContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_variableDeclaratorList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(893); + variableDeclarator(); + setState(898); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(894); + match(COMMA); + setState(895); + variableDeclarator(); + } + } + setState(900); + _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 Java8Listener ) ((Java8Listener)listener).enterVariableDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarator(this); + } + } + + public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { + VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_variableDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(901); + variableDeclaratorId(); + setState(904); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGN) { + { + setState(902); + match(ASSIGN); + setState(903); + 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(Java8Parser.Identifier, 0); } + public DimsContext dims() { + return getRuleContext(DimsContext.class,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 Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorId(this); + } + } + + public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { + VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_variableDeclaratorId); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(906); + match(Identifier); + setState(908); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(907); + dims(); + } + } + + } + } + 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 ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ArrayInitializerContext arrayInitializer() { + return getRuleContext(ArrayInitializerContext.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 Java8Listener ) ((Java8Listener)listener).enterVariableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializer(this); + } + } + + public final VariableInitializerContext variableInitializer() throws RecognitionException { + VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_variableInitializer); + try { + setState(912); + _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 BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case Identifier: + case AT: + enterOuterAlt(_localctx, 1); + { + setState(910); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(911); + arrayInitializer(); + } + 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 UnannTypeContext extends ParserRuleContext { + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public UnannReferenceTypeContext unannReferenceType() { + return getRuleContext(UnannReferenceTypeContext.class,0); + } + public UnannTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannType(this); + } + } + + public final UnannTypeContext unannType() throws RecognitionException { + UnannTypeContext _localctx = new UnannTypeContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_unannType); + try { + setState(916); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(914); + unannPrimitiveType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(915); + unannReferenceType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannPrimitiveTypeContext extends ParserRuleContext { + public NumericTypeContext numericType() { + return getRuleContext(NumericTypeContext.class,0); + } + public UnannPrimitiveTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannPrimitiveType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannPrimitiveType(this); + } + } + + public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { + UnannPrimitiveTypeContext _localctx = new UnannPrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_unannPrimitiveType); + try { + setState(920); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + enterOuterAlt(_localctx, 1); + { + setState(918); + numericType(); + } + break; + case BOOLEAN: + enterOuterAlt(_localctx, 2); + { + setState(919); + match(BOOLEAN); + } + 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 UnannReferenceTypeContext extends ParserRuleContext { + public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { + return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); + } + public UnannTypeVariableContext unannTypeVariable() { + return getRuleContext(UnannTypeVariableContext.class,0); + } + public UnannArrayTypeContext unannArrayType() { + return getRuleContext(UnannArrayTypeContext.class,0); + } + public UnannReferenceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannReferenceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannReferenceType(this); + } + } + + public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { + UnannReferenceTypeContext _localctx = new UnannReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_unannReferenceType); + try { + setState(925); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(922); + unannClassOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(923); + unannTypeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(924); + unannArrayType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannClassOrInterfaceTypeContext extends ParserRuleContext { + public UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() { + return getRuleContext(UnannClassType_lfno_unannClassOrInterfaceTypeContext.class,0); + } + public UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() { + return getRuleContext(UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext.class,0); + } + public List unannClassType_lf_unannClassOrInterfaceType() { + return getRuleContexts(UnannClassType_lf_unannClassOrInterfaceTypeContext.class); + } + public UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType(int i) { + return getRuleContext(UnannClassType_lf_unannClassOrInterfaceTypeContext.class,i); + } + public List unannInterfaceType_lf_unannClassOrInterfaceType() { + return getRuleContexts(UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class); + } + public UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType(int i) { + return getRuleContext(UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class,i); + } + public UnannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassOrInterfaceType(this); + } + } + + public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { + UnannClassOrInterfaceTypeContext _localctx = new UnannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_unannClassOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(929); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { + case 1: + { + setState(927); + unannClassType_lfno_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(928); + unannInterfaceType_lfno_unannClassOrInterfaceType(); + } + break; + } + setState(935); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,66,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(933); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) { + case 1: + { + setState(931); + unannClassType_lf_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(932); + unannInterfaceType_lf_unannClassOrInterfaceType(); + } + break; + } + } + } + setState(937); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,66,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannClassTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { + return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public UnannClassTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannClassType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType(this); + } + } + + public final UnannClassTypeContext unannClassType() throws RecognitionException { + UnannClassTypeContext _localctx = new UnannClassTypeContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_unannClassType); + int _la; + try { + setState(954); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,70,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(938); + match(Identifier); + setState(940); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(939); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(942); + unannClassOrInterfaceType(); + setState(943); + match(DOT); + setState(947); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(944); + annotation(); + } + } + setState(949); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(950); + match(Identifier); + setState(952); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(951); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannClassType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public UnannClassType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannClassType_lf_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lf_unannClassOrInterfaceType(this); + } + } + + public final UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() throws RecognitionException { + UnannClassType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_unannClassType_lf_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(956); + match(DOT); + setState(960); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(957); + annotation(); + } + } + setState(962); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(963); + match(Identifier); + setState(965); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(964); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannClassType_lfno_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public UnannClassType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannClassType_lfno_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lfno_unannClassOrInterfaceType(this); + } + } + + public final UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() throws RecognitionException { + UnannClassType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_unannClassType_lfno_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(967); + match(Identifier); + setState(969); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(968); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannInterfaceTypeContext extends ParserRuleContext { + public UnannClassTypeContext unannClassType() { + return getRuleContext(UnannClassTypeContext.class,0); + } + public UnannInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType(this); + } + } + + public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { + UnannInterfaceTypeContext _localctx = new UnannInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_unannInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(971); + unannClassType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannInterfaceType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() { + return getRuleContext(UnannClassType_lf_unannClassOrInterfaceTypeContext.class,0); + } + public UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannInterfaceType_lf_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lf_unannClassOrInterfaceType(this); + } + } + + public final UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType() throws RecognitionException { + UnannInterfaceType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_unannInterfaceType_lf_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(973); + unannClassType_lf_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() { + return getRuleContext(UnannClassType_lfno_unannClassOrInterfaceTypeContext.class,0); + } + public UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannInterfaceType_lfno_unannClassOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lfno_unannClassOrInterfaceType(this); + } + } + + public final UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() throws RecognitionException { + UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(975); + unannClassType_lfno_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannTypeVariableContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public UnannTypeVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannTypeVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeVariable(this); + } + } + + public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { + UnannTypeVariableContext _localctx = new UnannTypeVariableContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_unannTypeVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(977); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannArrayTypeContext extends ParserRuleContext { + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public DimsContext dims() { + return getRuleContext(DimsContext.class,0); + } + public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { + return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); + } + public UnannTypeVariableContext unannTypeVariable() { + return getRuleContext(UnannTypeVariableContext.class,0); + } + public UnannArrayTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannArrayType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannArrayType(this); + } + } + + public final UnannArrayTypeContext unannArrayType() throws RecognitionException { + UnannArrayTypeContext _localctx = new UnannArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_unannArrayType); + try { + setState(988); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,74,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(979); + unannPrimitiveType(); + setState(980); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(982); + unannClassOrInterfaceType(); + setState(983); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(985); + unannTypeVariable(); + setState(986); + dims(); + } + 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 MethodHeaderContext methodHeader() { + return getRuleContext(MethodHeaderContext.class,0); + } + public MethodBodyContext methodBody() { + return getRuleContext(MethodBodyContext.class,0); + } + public List methodModifier() { + return getRuleContexts(MethodModifierContext.class); + } + public MethodModifierContext methodModifier(int i) { + return getRuleContext(MethodModifierContext.class,i); + } + 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 Java8Listener ) ((Java8Listener)listener).enterMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclaration(this); + } + } + + public final MethodDeclarationContext methodDeclaration() throws RecognitionException { + MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_methodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(993); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED))) != 0) || _la==AT) { + { + { + setState(990); + methodModifier(); + } + } + setState(995); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(996); + methodHeader(); + setState(997); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public MethodModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodModifier(this); + } + } + + public final MethodModifierContext methodModifier() throws RecognitionException { + MethodModifierContext _localctx = new MethodModifierContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_methodModifier); + try { + setState(1009); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(999); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1000); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1001); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1002); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(1003); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(1004); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(1005); + match(FINAL); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 8); + { + setState(1006); + match(SYNCHRONIZED); + } + break; + case NATIVE: + enterOuterAlt(_localctx, 9); + { + setState(1007); + match(NATIVE); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 10); + { + setState(1008); + match(STRICTFP); + } + 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 MethodHeaderContext extends ParserRuleContext { + public MethodDeclaratorContext methodDeclarator() { + return getRuleContext(MethodDeclaratorContext.class,0); + } + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public Throws_Context throws_() { + return getRuleContext(Throws_Context.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public MethodHeaderContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodHeader; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodHeader(this); + } + } + + public final MethodHeaderContext methodHeader() throws RecognitionException { + MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_methodHeader); + int _la; + try { + setState(1032); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case VOID: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(1012); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,77,_ctx) ) { + case 1: + { + setState(1011); + result(); + } + break; + } + setState(1014); + methodDeclarator(); + setState(1016); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1015); + throws_(); + } + } + + } + break; + case LT: + enterOuterAlt(_localctx, 2); + { + setState(1018); + typeParameters(); + setState(1022); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1019); + annotation(); + } + } + setState(1024); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1026); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) { + case 1: + { + setState(1025); + result(); + } + break; + } + setState(1028); + methodDeclarator(); + setState(1030); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1029); + throws_(); + } + } + + } + 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 ResultContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public ResultContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_result; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResult(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResult(this); + } + } + + public final ResultContext result() throws RecognitionException { + ResultContext _localctx = new ResultContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_result); + try { + setState(1036); + _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(1034); + unannType(); + } + break; + case VOID: + enterOuterAlt(_localctx, 2); + { + setState(1035); + match(VOID); + } + 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 MethodDeclaratorContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public DimsContext dims() { + return getRuleContext(DimsContext.class,0); + } + public MethodDeclaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclarator(this); + } + } + + public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { + MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_methodDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1038); + match(Identifier); + setState(1039); + match(LPAREN); + setState(1041); + _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(1040); + formalParameterList(); + } + } + + setState(1043); + match(RPAREN); + setState(1045); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1044); + dims(); + } + } + + } + } + 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 FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameterList(this); + } + } + + public final FormalParameterListContext formalParameterList() throws RecognitionException { + FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_formalParameterList); + try { + setState(1052); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1047); + formalParameters(); + setState(1048); + match(COMMA); + setState(1049); + lastFormalParameter(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1051); + lastFormalParameter(); + } + break; + } + } + 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 List formalParameter() { + return getRuleContexts(FormalParameterContext.class); + } + public FormalParameterContext formalParameter(int i) { + return getRuleContext(FormalParameterContext.class,i); + } + public ReceiverParameterContext receiverParameter() { + return getRuleContext(ReceiverParameterContext.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 Java8Listener ) ((Java8Listener)listener).enterFormalParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameters(this); + } + } + + public final FormalParametersContext formalParameters() throws RecognitionException { + FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_formalParameters); + try { + int _alt; + setState(1070); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1054); + formalParameter(); + setState(1059); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,87,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1055); + match(COMMA); + setState(1056); + formalParameter(); + } + } + } + setState(1061); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,87,_ctx); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1062); + receiverParameter(); + setState(1067); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,88,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1063); + match(COMMA); + setState(1064); + formalParameter(); + } + } + } + setState(1069); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,88,_ctx); + } + } + 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 VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameter(this); + } + } + + public final FormalParameterContext formalParameter() throws RecognitionException { + FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_formalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1075); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1072); + variableModifier(); + } + } + setState(1077); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1079); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) { + case 1: + { + setState(1078); + unannType(); + } + break; + } + setState(1081); + variableDeclaratorId(); + } + } + 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 Java8Listener ) ((Java8Listener)listener).enterVariableModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableModifier(this); + } + } + + public final VariableModifierContext variableModifier() throws RecognitionException { + VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_variableModifier); + try { + setState(1085); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1083); + annotation(); + } + break; + case FINAL: + enterOuterAlt(_localctx, 2); + { + setState(1084); + match(FINAL); + } + 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 LastFormalParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public FormalParameterContext formalParameter() { + return getRuleContext(FormalParameterContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterLastFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLastFormalParameter(this); + } + } + + public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { + LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_lastFormalParameter); + int _la; + try { + setState(1104); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,95,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1090); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1087); + variableModifier(); + } + } + setState(1092); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1093); + unannType(); + setState(1097); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1094); + annotation(); + } + } + setState(1099); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1100); + match(ELLIPSIS); + setState(1101); + variableDeclaratorId(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1103); + formalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ReceiverParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public ReceiverParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_receiverParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReceiverParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReceiverParameter(this); + } + } + + public final ReceiverParameterContext receiverParameter() throws RecognitionException { + ReceiverParameterContext _localctx = new ReceiverParameterContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_receiverParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1109); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1106); + annotation(); + } + } + setState(1111); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1112); + unannType(); + setState(1115); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1113); + match(Identifier); + setState(1114); + match(DOT); + } + } + + setState(1117); + match(THIS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Throws_Context extends ParserRuleContext { + public ExceptionTypeListContext exceptionTypeList() { + return getRuleContext(ExceptionTypeListContext.class,0); + } + public Throws_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_throws_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrows_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrows_(this); + } + } + + public final Throws_Context throws_() throws RecognitionException { + Throws_Context _localctx = new Throws_Context(_ctx, getState()); + enterRule(_localctx, 162, RULE_throws_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1119); + match(THROWS); + setState(1120); + exceptionTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExceptionTypeListContext extends ParserRuleContext { + public List exceptionType() { + return getRuleContexts(ExceptionTypeContext.class); + } + public ExceptionTypeContext exceptionType(int i) { + return getRuleContext(ExceptionTypeContext.class,i); + } + public ExceptionTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exceptionTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionTypeList(this); + } + } + + public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { + ExceptionTypeListContext _localctx = new ExceptionTypeListContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_exceptionTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1122); + exceptionType(); + setState(1127); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1123); + match(COMMA); + setState(1124); + exceptionType(); + } + } + setState(1129); + _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 ExceptionTypeContext extends ParserRuleContext { + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TypeVariableContext typeVariable() { + return getRuleContext(TypeVariableContext.class,0); + } + public ExceptionTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exceptionType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionType(this); + } + } + + public final ExceptionTypeContext exceptionType() throws RecognitionException { + ExceptionTypeContext _localctx = new ExceptionTypeContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_exceptionType); + try { + setState(1132); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1130); + classType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1131); + typeVariable(); + } + break; + } + } + 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 Java8Listener ) ((Java8Listener)listener).enterMethodBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodBody(this); + } + } + + public final MethodBodyContext methodBody() throws RecognitionException { + MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_methodBody); + try { + setState(1136); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1134); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1135); + 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 InstanceInitializerContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public InstanceInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_instanceInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInstanceInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInstanceInitializer(this); + } + } + + public final InstanceInitializerContext instanceInitializer() throws RecognitionException { + InstanceInitializerContext _localctx = new InstanceInitializerContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_instanceInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1138); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StaticInitializerContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public StaticInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_staticInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticInitializer(this); + } + } + + public final StaticInitializerContext staticInitializer() throws RecognitionException { + StaticInitializerContext _localctx = new StaticInitializerContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_staticInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1140); + match(STATIC); + setState(1141); + block(); + } + } + 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 ConstructorDeclaratorContext constructorDeclarator() { + return getRuleContext(ConstructorDeclaratorContext.class,0); + } + public ConstructorBodyContext constructorBody() { + return getRuleContext(ConstructorBodyContext.class,0); + } + public List constructorModifier() { + return getRuleContexts(ConstructorModifierContext.class); + } + public ConstructorModifierContext constructorModifier(int i) { + return getRuleContext(ConstructorModifierContext.class,i); + } + public Throws_Context throws_() { + return getRuleContext(Throws_Context.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 Java8Listener ) ((Java8Listener)listener).enterConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclaration(this); + } + } + + public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { + ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_constructorDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1146); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC))) != 0) || _la==AT) { + { + { + setState(1143); + constructorModifier(); + } + } + setState(1148); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1149); + constructorDeclarator(); + setState(1151); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1150); + throws_(); + } + } + + setState(1153); + constructorBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConstructorModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public ConstructorModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorModifier(this); + } + } + + public final ConstructorModifierContext constructorModifier() throws RecognitionException { + ConstructorModifierContext _localctx = new ConstructorModifierContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_constructorModifier); + try { + setState(1159); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1155); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1156); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1157); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1158); + match(PRIVATE); + } + 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 ConstructorDeclaratorContext extends ParserRuleContext { + public SimpleTypeNameContext simpleTypeName() { + return getRuleContext(SimpleTypeNameContext.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public ConstructorDeclaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclarator(this); + } + } + + public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { + ConstructorDeclaratorContext _localctx = new ConstructorDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_constructorDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1162); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1161); + typeParameters(); + } + } + + setState(1164); + simpleTypeName(); + setState(1165); + match(LPAREN); + setState(1167); + _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(1166); + formalParameterList(); + } + } + + setState(1169); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SimpleTypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public SimpleTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSimpleTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSimpleTypeName(this); + } + } + + public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { + SimpleTypeNameContext _localctx = new SimpleTypeNameContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_simpleTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1171); + match(Identifier); + } + } + 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 ExplicitConstructorInvocationContext explicitConstructorInvocation() { + return getRuleContext(ExplicitConstructorInvocationContext.class,0); + } + public BlockStatementsContext blockStatements() { + return getRuleContext(BlockStatementsContext.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 Java8Listener ) ((Java8Listener)listener).enterConstructorBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorBody(this); + } + } + + public final ConstructorBodyContext constructorBody() throws RecognitionException { + ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_constructorBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1173); + match(LBRACE); + setState(1175); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) { + case 1: + { + setState(1174); + explicitConstructorInvocation(); + } + break; + } + setState(1178); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (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 - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + setState(1177); + blockStatements(); + } + } + + setState(1180); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExplicitConstructorInvocationContext extends ParserRuleContext { + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public ExplicitConstructorInvocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explicitConstructorInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitConstructorInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitConstructorInvocation(this); + } + } + + public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { + ExplicitConstructorInvocationContext _localctx = new ExplicitConstructorInvocationContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_explicitConstructorInvocation); + int _la; + try { + setState(1228); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,116,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1183); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1182); + typeArguments(); + } + } + + setState(1185); + match(THIS); + setState(1186); + match(LPAREN); + setState(1188); + _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 << (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(1187); + argumentList(); + } + } + + setState(1190); + match(RPAREN); + setState(1191); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1193); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1192); + typeArguments(); + } + } + + setState(1195); + match(SUPER); + setState(1196); + match(LPAREN); + setState(1198); + _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 << (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(1197); + argumentList(); + } + } + + setState(1200); + match(RPAREN); + setState(1201); + match(SEMI); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1202); + expressionName(); + setState(1203); + match(DOT); + setState(1205); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1204); + typeArguments(); + } + } + + setState(1207); + match(SUPER); + setState(1208); + match(LPAREN); + setState(1210); + _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 << (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(1209); + argumentList(); + } + } + + setState(1212); + match(RPAREN); + setState(1213); + match(SEMI); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1215); + primary(); + setState(1216); + match(DOT); + setState(1218); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1217); + typeArguments(); + } + } + + setState(1220); + match(SUPER); + setState(1221); + match(LPAREN); + setState(1223); + _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 << (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(1222); + argumentList(); + } + } + + setState(1225); + match(RPAREN); + setState(1226); + match(SEMI); + } + break; + } + } + 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 Identifier() { return getToken(Java8Parser.Identifier, 0); } + public EnumBodyContext enumBody() { + return getRuleContext(EnumBodyContext.class,0); + } + public List classModifier() { + return getRuleContexts(ClassModifierContext.class); + } + public ClassModifierContext classModifier(int i) { + return getRuleContext(ClassModifierContext.class,i); + } + public SuperinterfacesContext superinterfaces() { + return getRuleContext(SuperinterfacesContext.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 Java8Listener ) ((Java8Listener)listener).enterEnumDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumDeclaration(this); + } + } + + public final EnumDeclarationContext enumDeclaration() throws RecognitionException { + EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_enumDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1233); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { + { + { + setState(1230); + classModifier(); + } + } + setState(1235); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1236); + match(ENUM); + setState(1237); + match(Identifier); + setState(1239); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(1238); + superinterfaces(); + } + } + + setState(1241); + enumBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EnumBodyContext extends ParserRuleContext { + public EnumConstantListContext enumConstantList() { + return getRuleContext(EnumConstantListContext.class,0); + } + public EnumBodyDeclarationsContext enumBodyDeclarations() { + return getRuleContext(EnumBodyDeclarationsContext.class,0); + } + public EnumBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBody(this); + } + } + + public final EnumBodyContext enumBody() throws RecognitionException { + EnumBodyContext _localctx = new EnumBodyContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_enumBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1243); + match(LBRACE); + setState(1245); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier || _la==AT) { + { + setState(1244); + enumConstantList(); + } + } + + setState(1248); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1247); + match(COMMA); + } + } + + setState(1251); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1250); + enumBodyDeclarations(); + } + } + + setState(1253); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EnumConstantListContext extends ParserRuleContext { + public List enumConstant() { + return getRuleContexts(EnumConstantContext.class); + } + public EnumConstantContext enumConstant(int i) { + return getRuleContext(EnumConstantContext.class,i); + } + public EnumConstantListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumConstantList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantList(this); + } + } + + public final EnumConstantListContext enumConstantList() throws RecognitionException { + EnumConstantListContext _localctx = new EnumConstantListContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_enumConstantList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1255); + enumConstant(); + setState(1260); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,122,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1256); + match(COMMA); + setState(1257); + enumConstant(); + } + } + } + setState(1262); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,122,_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(Java8Parser.Identifier, 0); } + public List enumConstantModifier() { + return getRuleContexts(EnumConstantModifierContext.class); + } + public EnumConstantModifierContext enumConstantModifier(int i) { + return getRuleContext(EnumConstantModifierContext.class,i); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.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 Java8Listener ) ((Java8Listener)listener).enterEnumConstant(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstant(this); + } + } + + public final EnumConstantContext enumConstant() throws RecognitionException { + EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_enumConstant); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1266); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1263); + enumConstantModifier(); + } + } + setState(1268); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1269); + match(Identifier); + setState(1275); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LPAREN) { + { + setState(1270); + match(LPAREN); + setState(1272); + _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 << (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(1271); + argumentList(); + } + } + + setState(1274); + match(RPAREN); + } + } + + setState(1278); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(1277); + classBody(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EnumConstantModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public EnumConstantModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumConstantModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantModifier(this); + } + } + + public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { + EnumConstantModifierContext _localctx = new EnumConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_enumConstantModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(1280); + annotation(); + } + } + 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 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 Java8Listener ) ((Java8Listener)listener).enterEnumBodyDeclarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBodyDeclarations(this); + } + } + + public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { + EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_enumBodyDeclarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1282); + match(SEMI); + setState(1286); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (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 - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + { + setState(1283); + classBodyDeclaration(); + } + } + setState(1288); + _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 NormalInterfaceDeclarationContext normalInterfaceDeclaration() { + return getRuleContext(NormalInterfaceDeclarationContext.class,0); + } + public AnnotationTypeDeclarationContext annotationTypeDeclaration() { + return getRuleContext(AnnotationTypeDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceDeclaration(this); + } + } + + public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { + InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_interfaceDeclaration); + try { + setState(1291); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1289); + normalInterfaceDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1290); + annotationTypeDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NormalInterfaceDeclarationContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public InterfaceBodyContext interfaceBody() { + return getRuleContext(InterfaceBodyContext.class,0); + } + public List interfaceModifier() { + return getRuleContexts(InterfaceModifierContext.class); + } + public InterfaceModifierContext interfaceModifier(int i) { + return getRuleContext(InterfaceModifierContext.class,i); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ExtendsInterfacesContext extendsInterfaces() { + return getRuleContext(ExtendsInterfacesContext.class,0); + } + public NormalInterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalInterfaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalInterfaceDeclaration(this); + } + } + + public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { + NormalInterfaceDeclarationContext _localctx = new NormalInterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_normalInterfaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1296); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { + { + { + setState(1293); + interfaceModifier(); + } + } + setState(1298); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1299); + match(INTERFACE); + setState(1300); + match(Identifier); + setState(1302); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1301); + typeParameters(); + } + } + + setState(1305); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(1304); + extendsInterfaces(); + } + } + + setState(1307); + interfaceBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public InterfaceModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceModifier(this); + } + } + + public final InterfaceModifierContext interfaceModifier() throws RecognitionException { + InterfaceModifierContext _localctx = new InterfaceModifierContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_interfaceModifier); + try { + setState(1316); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1309); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1310); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1311); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1312); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(1313); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(1314); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 7); + { + setState(1315); + match(STRICTFP); + } + 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 ExtendsInterfacesContext extends ParserRuleContext { + public InterfaceTypeListContext interfaceTypeList() { + return getRuleContext(InterfaceTypeListContext.class,0); + } + public ExtendsInterfacesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extendsInterfaces; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExtendsInterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExtendsInterfaces(this); + } + } + + public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { + ExtendsInterfacesContext _localctx = new ExtendsInterfacesContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_extendsInterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(1318); + match(EXTENDS); + setState(1319); + interfaceTypeList(); + } + } + 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 interfaceMemberDeclaration() { + return getRuleContexts(InterfaceMemberDeclarationContext.class); + } + public InterfaceMemberDeclarationContext interfaceMemberDeclaration(int i) { + return getRuleContext(InterfaceMemberDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterInterfaceBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBody(this); + } + } + + public final InterfaceBodyContext interfaceBody() throws RecognitionException { + InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_interfaceBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1321); + match(LBRACE); + setState(1325); + _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 << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << VOID))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + { + setState(1322); + interfaceMemberDeclaration(); + } + } + setState(1327); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1328); + match(RBRACE); + } + } + 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 ConstantDeclarationContext constantDeclaration() { + return getRuleContext(ConstantDeclarationContext.class,0); + } + public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { + return getRuleContext(InterfaceMethodDeclarationContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterInterfaceMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMemberDeclaration(this); + } + } + + public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { + InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_interfaceMemberDeclaration); + try { + setState(1335); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,134,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1330); + constantDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1331); + interfaceMethodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1332); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1333); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1334); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConstantDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public List constantModifier() { + return getRuleContexts(ConstantModifierContext.class); + } + public ConstantModifierContext constantModifier(int i) { + return getRuleContext(ConstantModifierContext.class,i); + } + public ConstantDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constantDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantDeclaration(this); + } + } + + public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { + ConstantDeclarationContext _localctx = new ConstantDeclarationContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_constantDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1340); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PUBLIC) | (1L << STATIC))) != 0) || _la==AT) { + { + { + setState(1337); + constantModifier(); + } + } + setState(1342); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1343); + unannType(); + setState(1344); + variableDeclaratorList(); + setState(1345); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConstantModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public ConstantModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constantModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantModifier(this); + } + } + + public final ConstantModifierContext constantModifier() throws RecognitionException { + ConstantModifierContext _localctx = new ConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_constantModifier); + try { + setState(1351); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1347); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1348); + match(PUBLIC); + } + break; + case STATIC: + enterOuterAlt(_localctx, 3); + { + setState(1349); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 4); + { + setState(1350); + match(FINAL); + } + 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 InterfaceMethodDeclarationContext extends ParserRuleContext { + public MethodHeaderContext methodHeader() { + return getRuleContext(MethodHeaderContext.class,0); + } + public MethodBodyContext methodBody() { + return getRuleContext(MethodBodyContext.class,0); + } + public List interfaceMethodModifier() { + return getRuleContexts(InterfaceMethodModifierContext.class); + } + public InterfaceMethodModifierContext interfaceMethodModifier(int i) { + return getRuleContext(InterfaceMethodModifierContext.class,i); + } + 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 Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodDeclaration(this); + } + } + + public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { + InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_interfaceMethodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1356); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { + { + { + setState(1353); + interfaceMethodModifier(); + } + } + setState(1358); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1359); + methodHeader(); + setState(1360); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InterfaceMethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public InterfaceMethodModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodModifier(this); + } + } + + public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { + InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_interfaceMethodModifier); + try { + setState(1368); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1362); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1363); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1364); + match(ABSTRACT); + } + break; + case DEFAULT: + enterOuterAlt(_localctx, 4); + { + setState(1365); + match(DEFAULT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(1366); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 6); + { + setState(1367); + match(STRICTFP); + } + 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 AnnotationTypeDeclarationContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AnnotationTypeBodyContext annotationTypeBody() { + return getRuleContext(AnnotationTypeBodyContext.class,0); + } + public List interfaceModifier() { + return getRuleContexts(InterfaceModifierContext.class); + } + public InterfaceModifierContext interfaceModifier(int i) { + return getRuleContext(InterfaceModifierContext.class,i); + } + 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 Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeDeclaration(this); + } + } + + public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { + AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_annotationTypeDeclaration); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1373); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,139,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1370); + interfaceModifier(); + } + } + } + setState(1375); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,139,_ctx); + } + setState(1376); + match(AT); + setState(1377); + match(INTERFACE); + setState(1378); + match(Identifier); + setState(1379); + 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 annotationTypeMemberDeclaration() { + return getRuleContexts(AnnotationTypeMemberDeclarationContext.class); + } + public AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration(int i) { + return getRuleContext(AnnotationTypeMemberDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeBody(this); + } + } + + public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { + AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_annotationTypeBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1381); + match(LBRACE); + setState(1385); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + { + setState(1382); + annotationTypeMemberDeclaration(); + } + } + setState(1387); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1388); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AnnotationTypeMemberDeclarationContext extends ParserRuleContext { + public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() { + return getRuleContext(AnnotationTypeElementDeclarationContext.class,0); + } + public ConstantDeclarationContext constantDeclaration() { + return getRuleContext(ConstantDeclarationContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public AnnotationTypeMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeMemberDeclaration(this); + } + } + + public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { + AnnotationTypeMemberDeclarationContext _localctx = new AnnotationTypeMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_annotationTypeMemberDeclaration); + try { + setState(1395); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1390); + annotationTypeElementDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1391); + constantDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1392); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1393); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1394); + match(SEMI); + } + break; + } + } + 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 UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public List annotationTypeElementModifier() { + return getRuleContexts(AnnotationTypeElementModifierContext.class); + } + public AnnotationTypeElementModifierContext annotationTypeElementModifier(int i) { + return getRuleContext(AnnotationTypeElementModifierContext.class,i); + } + public DimsContext dims() { + return getRuleContext(DimsContext.class,0); + } + public DefaultValueContext defaultValue() { + return getRuleContext(DefaultValueContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementDeclaration(this); + } + } + + public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { + AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_annotationTypeElementDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1400); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==ABSTRACT || _la==PUBLIC || _la==AT) { + { + { + setState(1397); + annotationTypeElementModifier(); + } + } + setState(1402); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1403); + unannType(); + setState(1404); + match(Identifier); + setState(1405); + match(LPAREN); + setState(1406); + match(RPAREN); + setState(1408); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1407); + dims(); + } + } + + setState(1411); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(1410); + defaultValue(); + } + } + + setState(1413); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AnnotationTypeElementModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public AnnotationTypeElementModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeElementModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementModifier(this); + } + } + + public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { + AnnotationTypeElementModifierContext _localctx = new AnnotationTypeElementModifierContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_annotationTypeElementModifier); + try { + setState(1418); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1415); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1416); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1417); + match(ABSTRACT); + } + 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 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 Java8Listener ) ((Java8Listener)listener).enterDefaultValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDefaultValue(this); + } + } + + public final DefaultValueContext defaultValue() throws RecognitionException { + DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_defaultValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(1420); + match(DEFAULT); + setState(1421); + elementValue(); + } + } + 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 NormalAnnotationContext normalAnnotation() { + return getRuleContext(NormalAnnotationContext.class,0); + } + public MarkerAnnotationContext markerAnnotation() { + return getRuleContext(MarkerAnnotationContext.class,0); + } + public SingleElementAnnotationContext singleElementAnnotation() { + return getRuleContext(SingleElementAnnotationContext.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 Java8Listener ) ((Java8Listener)listener).enterAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotation(this); + } + } + + public final AnnotationContext annotation() throws RecognitionException { + AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_annotation); + try { + setState(1426); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1423); + normalAnnotation(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1424); + markerAnnotation(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1425); + singleElementAnnotation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class NormalAnnotationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ElementValuePairListContext elementValuePairList() { + return getRuleContext(ElementValuePairListContext.class,0); + } + public NormalAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalAnnotation(this); + } + } + + public final NormalAnnotationContext normalAnnotation() throws RecognitionException { + NormalAnnotationContext _localctx = new NormalAnnotationContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_normalAnnotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1428); + match(AT); + setState(1429); + typeName(); + setState(1430); + match(LPAREN); + setState(1432); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1431); + elementValuePairList(); + } + } + + setState(1434); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ElementValuePairListContext extends ParserRuleContext { + public List elementValuePair() { + return getRuleContexts(ElementValuePairContext.class); + } + public ElementValuePairContext elementValuePair(int i) { + return getRuleContext(ElementValuePairContext.class,i); + } + public ElementValuePairListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValuePairList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePairList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePairList(this); + } + } + + public final ElementValuePairListContext elementValuePairList() throws RecognitionException { + ElementValuePairListContext _localctx = new ElementValuePairListContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_elementValuePairList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1436); + elementValuePair(); + setState(1441); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1437); + match(COMMA); + setState(1438); + elementValuePair(); + } + } + setState(1443); + _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(Java8Parser.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 Java8Listener ) ((Java8Listener)listener).enterElementValuePair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePair(this); + } + } + + public final ElementValuePairContext elementValuePair() throws RecognitionException { + ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_elementValuePair); + try { + enterOuterAlt(_localctx, 1); + { + setState(1444); + match(Identifier); + setState(1445); + match(ASSIGN); + setState(1446); + 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 ConditionalExpressionContext conditionalExpression() { + return getRuleContext(ConditionalExpressionContext.class,0); + } + public ElementValueArrayInitializerContext elementValueArrayInitializer() { + return getRuleContext(ElementValueArrayInitializerContext.class,0); + } + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.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 Java8Listener ) ((Java8Listener)listener).enterElementValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValue(this); + } + } + + public final ElementValueContext elementValue() throws RecognitionException { + ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_elementValue); + try { + setState(1451); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1448); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1449); + elementValueArrayInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1450); + annotation(); + } + 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 ElementValueListContext elementValueList() { + return getRuleContext(ElementValueListContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterElementValueArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueArrayInitializer(this); + } + } + + public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { + ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_elementValueArrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1453); + match(LBRACE); + setState(1455); + _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 << (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(1454); + elementValueList(); + } + } + + setState(1458); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1457); + match(COMMA); + } + } + + setState(1460); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ElementValueListContext extends ParserRuleContext { + public List elementValue() { + return getRuleContexts(ElementValueContext.class); + } + public ElementValueContext elementValue(int i) { + return getRuleContext(ElementValueContext.class,i); + } + public ElementValueListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValueList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueList(this); + } + } + + public final ElementValueListContext elementValueList() throws RecognitionException { + ElementValueListContext _localctx = new ElementValueListContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_elementValueList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1462); + elementValue(); + setState(1467); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,152,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1463); + match(COMMA); + setState(1464); + elementValue(); + } + } + } + setState(1469); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,152,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MarkerAnnotationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public MarkerAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_markerAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMarkerAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMarkerAnnotation(this); + } + } + + public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { + MarkerAnnotationContext _localctx = new MarkerAnnotationContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_markerAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1470); + match(AT); + setState(1471); + typeName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SingleElementAnnotationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public SingleElementAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleElementAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleElementAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleElementAnnotation(this); + } + } + + public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { + SingleElementAnnotationContext _localctx = new SingleElementAnnotationContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_singleElementAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1473); + match(AT); + setState(1474); + typeName(); + setState(1475); + match(LPAREN); + setState(1476); + elementValue(); + setState(1477); + match(RPAREN); + } + } + 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 VariableInitializerListContext variableInitializerList() { + return getRuleContext(VariableInitializerListContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayInitializer(this); + } + } + + public final ArrayInitializerContext arrayInitializer() throws RecognitionException { + ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_arrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1479); + match(LBRACE); + setState(1481); + _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 << (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(1480); + variableInitializerList(); + } + } + + setState(1484); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1483); + match(COMMA); + } + } + + setState(1486); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class VariableInitializerListContext extends ParserRuleContext { + public List variableInitializer() { + return getRuleContexts(VariableInitializerContext.class); + } + public VariableInitializerContext variableInitializer(int i) { + return getRuleContext(VariableInitializerContext.class,i); + } + public VariableInitializerListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableInitializerList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializerList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializerList(this); + } + } + + public final VariableInitializerListContext variableInitializerList() throws RecognitionException { + VariableInitializerListContext _localctx = new VariableInitializerListContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_variableInitializerList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1488); + variableInitializer(); + setState(1493); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,155,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1489); + match(COMMA); + setState(1490); + variableInitializer(); + } + } + } + setState(1495); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,155,_ctx); + } + } + } + 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 BlockStatementsContext blockStatements() { + return getRuleContext(BlockStatementsContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlock(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1496); + match(LBRACE); + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (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 - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + setState(1497); + blockStatements(); + } + } + + setState(1500); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockStatementsContext extends ParserRuleContext { + public List blockStatement() { + return getRuleContexts(BlockStatementContext.class); + } + public BlockStatementContext blockStatement(int i) { + return getRuleContext(BlockStatementContext.class,i); + } + public BlockStatementsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_blockStatements; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatements(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatements(this); + } + } + + public final BlockStatementsContext blockStatements() throws RecognitionException { + BlockStatementsContext _localctx = new BlockStatementsContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_blockStatements); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1502); + blockStatement(); + setState(1506); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (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 - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { + { + { + setState(1503); + blockStatement(); + } + } + setState(1508); + _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 BlockStatementContext extends ParserRuleContext { + public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() { + return getRuleContext(LocalVariableDeclarationStatementContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.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 Java8Listener ) ((Java8Listener)listener).enterBlockStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatement(this); + } + } + + public final BlockStatementContext blockStatement() throws RecognitionException { + BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_blockStatement); + try { + setState(1512); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1509); + localVariableDeclarationStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1510); + classDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1511); + statement(); + } + 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 Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclarationStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclarationStatement(this); + } + } + + public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { + LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_localVariableDeclarationStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1514); + localVariableDeclaration(); + setState(1515); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnannTypeOrAutoContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public UnannTypeOrAutoContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannTypeOrAuto; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeOrAuto(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeOrAuto(this); + } + } + + public final UnannTypeOrAutoContext unannTypeOrAuto() throws RecognitionException { + UnannTypeOrAutoContext _localctx = new UnannTypeOrAutoContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_unannTypeOrAuto); + try { + setState(1519); + _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(1517); + unannType(); + } + break; + case T__0: + enterOuterAlt(_localctx, 2); + { + setState(1518); + match(T__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 LocalVariableDeclarationContext extends ParserRuleContext { + public UnannTypeOrAutoContext unannTypeOrAuto() { + return getRuleContext(UnannTypeOrAutoContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public List 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 Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclaration(this); + } + } + + public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { + LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_localVariableDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1524); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1521); + variableModifier(); + } + } + setState(1526); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1527); + unannTypeOrAuto(); + setState(1528); + variableDeclaratorList(); + } + } + 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 StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() { + return getRuleContext(StatementWithoutTrailingSubstatementContext.class,0); + } + public LabeledStatementContext labeledStatement() { + return getRuleContext(LabeledStatementContext.class,0); + } + public IfThenStatementContext ifThenStatement() { + return getRuleContext(IfThenStatementContext.class,0); + } + public IfThenElseStatementContext ifThenElseStatement() { + return getRuleContext(IfThenElseStatementContext.class,0); + } + public WhileStatementContext whileStatement() { + return getRuleContext(WhileStatementContext.class,0); + } + public ForStatementContext forStatement() { + return getRuleContext(ForStatementContext.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 Java8Listener ) ((Java8Listener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatement(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_statement); + try { + setState(1536); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1530); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1531); + labeledStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1532); + ifThenStatement(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1533); + ifThenElseStatement(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1534); + whileStatement(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1535); + forStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatementNoShortIfContext extends ParserRuleContext { + public StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() { + return getRuleContext(StatementWithoutTrailingSubstatementContext.class,0); + } + public LabeledStatementNoShortIfContext labeledStatementNoShortIf() { + return getRuleContext(LabeledStatementNoShortIfContext.class,0); + } + public IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() { + return getRuleContext(IfThenElseStatementNoShortIfContext.class,0); + } + public WhileStatementNoShortIfContext whileStatementNoShortIf() { + return getRuleContext(WhileStatementNoShortIfContext.class,0); + } + public ForStatementNoShortIfContext forStatementNoShortIf() { + return getRuleContext(ForStatementNoShortIfContext.class,0); + } + public StatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementNoShortIf(this); + } + } + + public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { + StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_statementNoShortIf); + try { + setState(1543); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1538); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1539); + labeledStatementNoShortIf(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1540); + ifThenElseStatementNoShortIf(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1541); + whileStatementNoShortIf(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1542); + forStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatementWithoutTrailingSubstatementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public EmptyStatementContext emptyStatement() { + return getRuleContext(EmptyStatementContext.class,0); + } + public ExpressionStatementContext expressionStatement() { + return getRuleContext(ExpressionStatementContext.class,0); + } + public AssertStatementContext assertStatement() { + return getRuleContext(AssertStatementContext.class,0); + } + public SwitchStatementContext switchStatement() { + return getRuleContext(SwitchStatementContext.class,0); + } + public DoStatementContext doStatement() { + return getRuleContext(DoStatementContext.class,0); + } + public BreakStatementContext breakStatement() { + return getRuleContext(BreakStatementContext.class,0); + } + public ContinueStatementContext continueStatement() { + return getRuleContext(ContinueStatementContext.class,0); + } + public ReturnStatementContext returnStatement() { + return getRuleContext(ReturnStatementContext.class,0); + } + public SynchronizedStatementContext synchronizedStatement() { + return getRuleContext(SynchronizedStatementContext.class,0); + } + public ThrowStatementContext throwStatement() { + return getRuleContext(ThrowStatementContext.class,0); + } + public TryStatementContext tryStatement() { + return getRuleContext(TryStatementContext.class,0); + } + public StatementWithoutTrailingSubstatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementWithoutTrailingSubstatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementWithoutTrailingSubstatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementWithoutTrailingSubstatement(this); + } + } + + public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { + StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_statementWithoutTrailingSubstatement); + try { + setState(1557); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1545); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1546); + emptyStatement(); + } + 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 INC: + case DEC: + case Identifier: + case AT: + enterOuterAlt(_localctx, 3); + { + setState(1547); + expressionStatement(); + } + break; + case ASSERT: + enterOuterAlt(_localctx, 4); + { + setState(1548); + assertStatement(); + } + break; + case SWITCH: + enterOuterAlt(_localctx, 5); + { + setState(1549); + switchStatement(); + } + break; + case DO: + enterOuterAlt(_localctx, 6); + { + setState(1550); + doStatement(); + } + break; + case BREAK: + enterOuterAlt(_localctx, 7); + { + setState(1551); + breakStatement(); + } + break; + case CONTINUE: + enterOuterAlt(_localctx, 8); + { + setState(1552); + continueStatement(); + } + break; + case RETURN: + enterOuterAlt(_localctx, 9); + { + setState(1553); + returnStatement(); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 10); + { + setState(1554); + synchronizedStatement(); + } + break; + case THROW: + enterOuterAlt(_localctx, 11); + { + setState(1555); + throwStatement(); + } + break; + case TRY: + enterOuterAlt(_localctx, 12); + { + setState(1556); + tryStatement(); + } + 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 EmptyStatementContext extends ParserRuleContext { + public EmptyStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEmptyStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEmptyStatement(this); + } + } + + public final EmptyStatementContext emptyStatement() throws RecognitionException { + EmptyStatementContext _localctx = new EmptyStatementContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_emptyStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1559); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LabeledStatementContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public LabeledStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labeledStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatement(this); + } + } + + public final LabeledStatementContext labeledStatement() throws RecognitionException { + LabeledStatementContext _localctx = new LabeledStatementContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_labeledStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1561); + match(Identifier); + setState(1562); + match(COLON); + setState(1563); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LabeledStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public LabeledStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labeledStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatementNoShortIf(this); + } + } + + public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { + LabeledStatementNoShortIfContext _localctx = new LabeledStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_labeledStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1565); + match(Identifier); + setState(1566); + match(COLON); + setState(1567); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionStatementContext extends ParserRuleContext { + public StatementExpressionContext statementExpression() { + return getRuleContext(StatementExpressionContext.class,0); + } + public ExpressionStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionStatement(this); + } + } + + public final ExpressionStatementContext expressionStatement() throws RecognitionException { + ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_expressionStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1569); + statementExpression(); + setState(1570); + match(SEMI); + } + } + 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 AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public PreIncrementExpressionContext preIncrementExpression() { + return getRuleContext(PreIncrementExpressionContext.class,0); + } + public PreDecrementExpressionContext preDecrementExpression() { + return getRuleContext(PreDecrementExpressionContext.class,0); + } + public PostIncrementExpressionContext postIncrementExpression() { + return getRuleContext(PostIncrementExpressionContext.class,0); + } + public PostDecrementExpressionContext postDecrementExpression() { + return getRuleContext(PostDecrementExpressionContext.class,0); + } + public MethodInvocationContext methodInvocation() { + return getRuleContext(MethodInvocationContext.class,0); + } + public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { + return getRuleContext(ClassInstanceCreationExpressionContext.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 Java8Listener ) ((Java8Listener)listener).enterStatementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpression(this); + } + } + + public final StatementExpressionContext statementExpression() throws RecognitionException { + StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_statementExpression); + try { + setState(1579); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1572); + assignment(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1573); + preIncrementExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1574); + preDecrementExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1575); + postIncrementExpression(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1576); + postDecrementExpression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1577); + methodInvocation(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1578); + classInstanceCreationExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IfThenStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public IfThenStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifThenStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenStatement(this); + } + } + + public final IfThenStatementContext ifThenStatement() throws RecognitionException { + IfThenStatementContext _localctx = new IfThenStatementContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_ifThenStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1581); + match(IF); + setState(1582); + match(LPAREN); + setState(1583); + expression(); + setState(1584); + match(RPAREN); + setState(1585); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IfThenElseStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public IfThenElseStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifThenElseStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatement(this); + } + } + + public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { + IfThenElseStatementContext _localctx = new IfThenElseStatementContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_ifThenElseStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1587); + match(IF); + setState(1588); + match(LPAREN); + setState(1589); + expression(); + setState(1590); + match(RPAREN); + setState(1591); + statementNoShortIf(); + setState(1592); + match(ELSE); + setState(1593); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IfThenElseStatementNoShortIfContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List statementNoShortIf() { + return getRuleContexts(StatementNoShortIfContext.class); + } + public StatementNoShortIfContext statementNoShortIf(int i) { + return getRuleContext(StatementNoShortIfContext.class,i); + } + public IfThenElseStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifThenElseStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatementNoShortIf(this); + } + } + + public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { + IfThenElseStatementNoShortIfContext _localctx = new IfThenElseStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_ifThenElseStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1595); + match(IF); + setState(1596); + match(LPAREN); + setState(1597); + expression(); + setState(1598); + match(RPAREN); + setState(1599); + statementNoShortIf(); + setState(1600); + match(ELSE); + setState(1601); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssertStatementContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public AssertStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assertStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssertStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssertStatement(this); + } + } + + public final AssertStatementContext assertStatement() throws RecognitionException { + AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_assertStatement); + try { + setState(1613); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1603); + match(ASSERT); + setState(1604); + expression(); + setState(1605); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1607); + match(ASSERT); + setState(1608); + expression(); + setState(1609); + match(COLON); + setState(1610); + expression(); + setState(1611); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SwitchStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SwitchBlockContext switchBlock() { + return getRuleContext(SwitchBlockContext.class,0); + } + public SwitchStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchStatement(this); + } + } + + public final SwitchStatementContext switchStatement() throws RecognitionException { + SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_switchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1615); + match(SWITCH); + setState(1616); + match(LPAREN); + setState(1617); + expression(); + setState(1618); + match(RPAREN); + setState(1619); + switchBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SwitchBlockContext extends ParserRuleContext { + public List switchBlockStatementGroup() { + return getRuleContexts(SwitchBlockStatementGroupContext.class); + } + public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) { + return getRuleContext(SwitchBlockStatementGroupContext.class,i); + } + public List switchLabel() { + return getRuleContexts(SwitchLabelContext.class); + } + public SwitchLabelContext switchLabel(int i) { + return getRuleContext(SwitchLabelContext.class,i); + } + public SwitchBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlock(this); + } + } + + public final SwitchBlockContext switchBlock() throws RecognitionException { + SwitchBlockContext _localctx = new SwitchBlockContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_switchBlock); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1621); + match(LBRACE); + setState(1625); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1622); + switchBlockStatementGroup(); + } + } + } + setState(1627); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); + } + setState(1631); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1628); + switchLabel(); + } + } + setState(1633); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1634); + match(RBRACE); + } + } + 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 SwitchLabelsContext switchLabels() { + return getRuleContext(SwitchLabelsContext.class,0); + } + public BlockStatementsContext blockStatements() { + return getRuleContext(BlockStatementsContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterSwitchBlockStatementGroup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlockStatementGroup(this); + } + } + + public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { + SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_switchBlockStatementGroup); + try { + enterOuterAlt(_localctx, 1); + { + setState(1636); + switchLabels(); + setState(1637); + blockStatements(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SwitchLabelsContext extends ParserRuleContext { + public List switchLabel() { + return getRuleContexts(SwitchLabelContext.class); + } + public SwitchLabelContext switchLabel(int i) { + return getRuleContext(SwitchLabelContext.class,i); + } + public SwitchLabelsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchLabels; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabels(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabels(this); + } + } + + public final SwitchLabelsContext switchLabels() throws RecognitionException { + SwitchLabelsContext _localctx = new SwitchLabelsContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_switchLabels); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1639); + switchLabel(); + setState(1643); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1640); + switchLabel(); + } + } + setState(1645); + _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 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 Java8Listener ) ((Java8Listener)listener).enterSwitchLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabel(this); + } + } + + public final SwitchLabelContext switchLabel() throws RecognitionException { + SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_switchLabel); + try { + setState(1656); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1646); + match(CASE); + setState(1647); + constantExpression(); + setState(1648); + match(COLON); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1650); + match(CASE); + setState(1651); + enumConstantName(); + setState(1652); + match(COLON); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1654); + match(DEFAULT); + setState(1655); + match(COLON); + } + break; + } + } + 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(Java8Parser.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 Java8Listener ) ((Java8Listener)listener).enterEnumConstantName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantName(this); + } + } + + public final EnumConstantNameContext enumConstantName() throws RecognitionException { + EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_enumConstantName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1658); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WhileStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public WhileStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whileStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatement(this); + } + } + + public final WhileStatementContext whileStatement() throws RecognitionException { + WhileStatementContext _localctx = new WhileStatementContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_whileStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1660); + match(WHILE); + setState(1661); + match(LPAREN); + setState(1662); + expression(); + setState(1663); + match(RPAREN); + setState(1664); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class WhileStatementNoShortIfContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public WhileStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whileStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatementNoShortIf(this); + } + } + + public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { + WhileStatementNoShortIfContext _localctx = new WhileStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_whileStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1666); + match(WHILE); + setState(1667); + match(LPAREN); + setState(1668); + expression(); + setState(1669); + match(RPAREN); + setState(1670); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DoStatementContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public DoStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_doStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDoStatement(this); + } + } + + public final DoStatementContext doStatement() throws RecognitionException { + DoStatementContext _localctx = new DoStatementContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_doStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1672); + match(DO); + setState(1673); + statement(); + setState(1674); + match(WHILE); + setState(1675); + match(LPAREN); + setState(1676); + expression(); + setState(1677); + match(RPAREN); + setState(1678); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ForStatementContext extends ParserRuleContext { + public BasicForStatementContext basicForStatement() { + return getRuleContext(BasicForStatementContext.class,0); + } + public EnhancedForStatementContext enhancedForStatement() { + return getRuleContext(EnhancedForStatementContext.class,0); + } + public ForStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatement(this); + } + } + + public final ForStatementContext forStatement() throws RecognitionException { + ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_forStatement); + try { + setState(1682); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1680); + basicForStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1681); + enhancedForStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ForStatementNoShortIfContext extends ParserRuleContext { + public BasicForStatementNoShortIfContext basicForStatementNoShortIf() { + return getRuleContext(BasicForStatementNoShortIfContext.class,0); + } + public EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() { + return getRuleContext(EnhancedForStatementNoShortIfContext.class,0); + } + public ForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatementNoShortIf(this); + } + } + + public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { + ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_forStatementNoShortIf); + try { + setState(1686); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1684); + basicForStatementNoShortIf(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1685); + enhancedForStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BasicForStatementContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.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 BasicForStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_basicForStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatement(this); + } + } + + public final BasicForStatementContext basicForStatement() throws RecognitionException { + BasicForStatementContext _localctx = new BasicForStatementContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_basicForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1688); + match(FOR); + setState(1689); + match(LPAREN); + setState(1691); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (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 - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + { + setState(1690); + forInit(); + } + } + + setState(1693); + match(SEMI); + setState(1695); + _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 << (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(1694); + expression(); + } + } + + setState(1697); + match(SEMI); + setState(1699); + _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 - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + { + setState(1698); + forUpdate(); + } + } + + setState(1701); + match(RPAREN); + setState(1702); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BasicForStatementNoShortIfContext extends ParserRuleContext { + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.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 BasicForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_basicForStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatementNoShortIf(this); + } + } + + public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { + BasicForStatementNoShortIfContext _localctx = new BasicForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_basicForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1704); + match(FOR); + setState(1705); + match(LPAREN); + setState(1707); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (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 - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + { + setState(1706); + forInit(); + } + } + + setState(1709); + match(SEMI); + setState(1711); + _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 << (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(1710); + expression(); + } + } + + setState(1713); + match(SEMI); + setState(1715); + _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 - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { + { + setState(1714); + forUpdate(); + } + } + + setState(1717); + match(RPAREN); + setState(1718); + statementNoShortIf(); + } + } + 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 StatementExpressionListContext statementExpressionList() { + return getRuleContext(StatementExpressionListContext.class,0); + } + public LocalVariableDeclarationContext localVariableDeclaration() { + return getRuleContext(LocalVariableDeclarationContext.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 Java8Listener ) ((Java8Listener)listener).enterForInit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForInit(this); + } + } + + public final ForInitContext forInit() throws RecognitionException { + ForInitContext _localctx = new ForInitContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_forInit); + try { + setState(1722); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1720); + statementExpressionList(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1721); + localVariableDeclaration(); + } + break; + } + } + 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 StatementExpressionListContext statementExpressionList() { + return getRuleContext(StatementExpressionListContext.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 Java8Listener ) ((Java8Listener)listener).enterForUpdate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForUpdate(this); + } + } + + public final ForUpdateContext forUpdate() throws RecognitionException { + ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_forUpdate); + try { + enterOuterAlt(_localctx, 1); + { + setState(1724); + statementExpressionList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatementExpressionListContext extends ParserRuleContext { + public List statementExpression() { + return getRuleContexts(StatementExpressionContext.class); + } + public StatementExpressionContext statementExpression(int i) { + return getRuleContext(StatementExpressionContext.class,i); + } + public StatementExpressionListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementExpressionList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpressionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpressionList(this); + } + } + + public final StatementExpressionListContext statementExpressionList() throws RecognitionException { + StatementExpressionListContext _localctx = new StatementExpressionListContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_statementExpressionList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1726); + statementExpression(); + setState(1731); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1727); + match(COMMA); + setState(1728); + statementExpression(); + } + } + setState(1733); + _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 EnhancedForStatementContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public EnhancedForStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enhancedForStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatement(this); + } + } + + public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { + EnhancedForStatementContext _localctx = new EnhancedForStatementContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_enhancedForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1734); + match(FOR); + setState(1735); + match(LPAREN); + setState(1739); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1736); + variableModifier(); + } + } + setState(1741); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1742); + unannType(); + setState(1743); + variableDeclaratorId(); + setState(1744); + match(COLON); + setState(1745); + expression(); + setState(1746); + match(RPAREN); + setState(1747); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class EnhancedForStatementNoShortIfContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public EnhancedForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enhancedForStatementNoShortIf; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatementNoShortIf(this); + } + } + + public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { + EnhancedForStatementNoShortIfContext _localctx = new EnhancedForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_enhancedForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1749); + match(FOR); + setState(1750); + match(LPAREN); + setState(1754); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1751); + variableModifier(); + } + } + setState(1756); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1757); + unannType(); + setState(1758); + variableDeclaratorId(); + setState(1759); + match(COLON); + setState(1760); + expression(); + setState(1761); + match(RPAREN); + setState(1762); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BreakStatementContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public BreakStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_breakStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBreakStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBreakStatement(this); + } + } + + public final BreakStatementContext breakStatement() throws RecognitionException { + BreakStatementContext _localctx = new BreakStatementContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_breakStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1764); + match(BREAK); + setState(1766); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1765); + match(Identifier); + } + } + + setState(1768); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ContinueStatementContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public ContinueStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_continueStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterContinueStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitContinueStatement(this); + } + } + + public final ContinueStatementContext continueStatement() throws RecognitionException { + ContinueStatementContext _localctx = new ContinueStatementContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_continueStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1770); + match(CONTINUE); + setState(1772); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1771); + match(Identifier); + } + } + + setState(1774); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ReturnStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ReturnStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReturnStatement(this); + } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_returnStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1776); + match(RETURN); + setState(1778); + _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 << (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(1777); + expression(); + } + } + + setState(1780); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ThrowStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ThrowStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_throwStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrowStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrowStatement(this); + } + } + + public final ThrowStatementContext throwStatement() throws RecognitionException { + ThrowStatementContext _localctx = new ThrowStatementContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_throwStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1782); + match(THROW); + setState(1783); + expression(); + setState(1784); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SynchronizedStatementContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public SynchronizedStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_synchronizedStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSynchronizedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSynchronizedStatement(this); + } + } + + public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { + SynchronizedStatementContext _localctx = new SynchronizedStatementContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_synchronizedStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1786); + match(SYNCHRONIZED); + setState(1787); + match(LPAREN); + setState(1788); + expression(); + setState(1789); + match(RPAREN); + setState(1790); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TryStatementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public CatchesContext catches() { + return getRuleContext(CatchesContext.class,0); + } + public Finally_Context finally_() { + return getRuleContext(Finally_Context.class,0); + } + public TryWithResourcesStatementContext tryWithResourcesStatement() { + return getRuleContext(TryWithResourcesStatementContext.class,0); + } + public TryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryStatement(this); + } + } + + public final TryStatementContext tryStatement() throws RecognitionException { + TryStatementContext _localctx = new TryStatementContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_tryStatement); + int _la; + try { + setState(1804); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1792); + match(TRY); + setState(1793); + block(); + setState(1794); + catches(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1796); + match(TRY); + setState(1797); + block(); + setState(1799); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1798); + catches(); + } + } + + setState(1801); + finally_(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1803); + tryWithResourcesStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CatchesContext extends ParserRuleContext { + public List catchClause() { + return getRuleContexts(CatchClauseContext.class); + } + public CatchClauseContext catchClause(int i) { + return getRuleContext(CatchClauseContext.class,i); + } + public CatchesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catches; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatches(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatches(this); + } + } + + public final CatchesContext catches() throws RecognitionException { + CatchesContext _localctx = new CatchesContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_catches); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1806); + catchClause(); + setState(1810); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CATCH) { + { + { + setState(1807); + catchClause(); + } + } + setState(1812); + _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 CatchClauseContext extends ParserRuleContext { + public CatchFormalParameterContext catchFormalParameter() { + return getRuleContext(CatchFormalParameterContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + 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 Java8Listener ) ((Java8Listener)listener).enterCatchClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchClause(this); + } + } + + public final CatchClauseContext catchClause() throws RecognitionException { + CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_catchClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1813); + match(CATCH); + setState(1814); + match(LPAREN); + setState(1815); + catchFormalParameter(); + setState(1816); + match(RPAREN); + setState(1817); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CatchFormalParameterContext extends ParserRuleContext { + public CatchTypeContext catchType() { + return getRuleContext(CatchTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public CatchFormalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catchFormalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchFormalParameter(this); + } + } + + public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { + CatchFormalParameterContext _localctx = new CatchFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 340, RULE_catchFormalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1822); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1819); + variableModifier(); + } + } + setState(1824); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1825); + catchType(); + setState(1826); + variableDeclaratorId(); + } + } + 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 UnannClassTypeContext unannClassType() { + return getRuleContext(UnannClassTypeContext.class,0); + } + public List classType() { + return getRuleContexts(ClassTypeContext.class); + } + public ClassTypeContext classType(int i) { + return getRuleContext(ClassTypeContext.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 Java8Listener ) ((Java8Listener)listener).enterCatchType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchType(this); + } + } + + public final CatchTypeContext catchType() throws RecognitionException { + CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_catchType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1828); + unannClassType(); + setState(1833); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITOR) { + { + { + setState(1829); + match(BITOR); + setState(1830); + classType(); + } + } + setState(1835); + _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 Finally_Context extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Finally_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_finally_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFinally_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFinally_(this); + } + } + + public final Finally_Context finally_() throws RecognitionException { + Finally_Context _localctx = new Finally_Context(_ctx, getState()); + enterRule(_localctx, 344, RULE_finally_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1836); + match(FINALLY); + setState(1837); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TryWithResourcesStatementContext extends ParserRuleContext { + public ResourceSpecificationContext resourceSpecification() { + return getRuleContext(ResourceSpecificationContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public CatchesContext catches() { + return getRuleContext(CatchesContext.class,0); + } + public Finally_Context finally_() { + return getRuleContext(Finally_Context.class,0); + } + public TryWithResourcesStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tryWithResourcesStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryWithResourcesStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryWithResourcesStatement(this); + } + } + + public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { + TryWithResourcesStatementContext _localctx = new TryWithResourcesStatementContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_tryWithResourcesStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1839); + match(TRY); + setState(1840); + resourceSpecification(); + setState(1841); + block(); + setState(1843); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1842); + catches(); + } + } + + setState(1846); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1845); + finally_(); + } + } + + } + } + 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 ResourceListContext resourceList() { + return getRuleContext(ResourceListContext.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 Java8Listener ) ((Java8Listener)listener).enterResourceSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceSpecification(this); + } + } + + public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { + ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_resourceSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1848); + match(LPAREN); + setState(1849); + resourceList(); + setState(1851); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1850); + match(SEMI); + } + } + + setState(1853); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ResourceListContext extends ParserRuleContext { + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public ResourceListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resourceList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceList(this); + } + } + + public final ResourceListContext resourceList() throws RecognitionException { + ResourceListContext _localctx = new ResourceListContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_resourceList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1855); + resource(); + setState(1860); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1856); + match(SEMI); + setState(1857); + resource(); + } + } + } + setState(1862); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,193,_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 UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List 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 Java8Listener ) ((Java8Listener)listener).enterResource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResource(this); + } + } + + public final ResourceContext resource() throws RecognitionException { + ResourceContext _localctx = new ResourceContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_resource); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1866); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1863); + variableModifier(); + } + } + setState(1868); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1869); + unannType(); + setState(1870); + variableDeclaratorId(); + setState(1871); + match(ASSIGN); + setState(1872); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryContext extends ParserRuleContext { + public PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() { + return getRuleContext(PrimaryNoNewArray_lfno_primaryContext.class,0); + } + public ArrayCreationExpressionContext arrayCreationExpression() { + return getRuleContext(ArrayCreationExpressionContext.class,0); + } + public List primaryNoNewArray_lf_primary() { + return getRuleContexts(PrimaryNoNewArray_lf_primaryContext.class); + } + public PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary(int i) { + return getRuleContext(PrimaryNoNewArray_lf_primaryContext.class,i); + } + 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 Java8Listener ) ((Java8Listener)listener).enterPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimary(this); + } + } + + public final PrimaryContext primary() throws RecognitionException { + PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); + enterRule(_localctx, 354, RULE_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1876); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { + case 1: + { + setState(1874); + primaryNoNewArray_lfno_primary(); + } + break; + case 2: + { + setState(1875); + arrayCreationExpression(); + } + break; + } + setState(1881); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1878); + primaryNoNewArray_lf_primary(); + } + } + } + setState(1883); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArrayContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { + return getRuleContext(ClassInstanceCreationExpressionContext.class,0); + } + public FieldAccessContext fieldAccess() { + return getRuleContext(FieldAccessContext.class,0); + } + public ArrayAccessContext arrayAccess() { + return getRuleContext(ArrayAccessContext.class,0); + } + public MethodInvocationContext methodInvocation() { + return getRuleContext(MethodInvocationContext.class,0); + } + public MethodReferenceContext methodReference() { + return getRuleContext(MethodReferenceContext.class,0); + } + public PrimaryNoNewArrayContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray(this); + } + } + + public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { + PrimaryNoNewArrayContext _localctx = new PrimaryNoNewArrayContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_primaryNoNewArray); + int _la; + try { + setState(1913); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1884); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1885); + typeName(); + setState(1890); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1886); + match(LBRACK); + setState(1887); + match(RBRACK); + } + } + setState(1892); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1893); + match(DOT); + setState(1894); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1896); + match(VOID); + setState(1897); + match(DOT); + setState(1898); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1899); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1900); + typeName(); + setState(1901); + match(DOT); + setState(1902); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1904); + match(LPAREN); + setState(1905); + expression(); + setState(1906); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1908); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1909); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1910); + arrayAccess(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1911); + methodInvocation(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1912); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lf_arrayAccessContext extends ParserRuleContext { + public PrimaryNoNewArray_lf_arrayAccessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_arrayAccess(this); + } + } + + public final PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess() throws RecognitionException { + PrimaryNoNewArray_lf_arrayAccessContext _localctx = new PrimaryNoNewArray_lf_arrayAccessContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_primaryNoNewArray_lf_arrayAccess); + try { + enterOuterAlt(_localctx, 1); + { + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lfno_arrayAccessContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { + return getRuleContext(ClassInstanceCreationExpressionContext.class,0); + } + public FieldAccessContext fieldAccess() { + return getRuleContext(FieldAccessContext.class,0); + } + public MethodInvocationContext methodInvocation() { + return getRuleContext(MethodInvocationContext.class,0); + } + public MethodReferenceContext methodReference() { + return getRuleContext(MethodReferenceContext.class,0); + } + public PrimaryNoNewArray_lfno_arrayAccessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_arrayAccess(this); + } + } + + public final PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() throws RecognitionException { + PrimaryNoNewArray_lfno_arrayAccessContext _localctx = new PrimaryNoNewArray_lfno_arrayAccessContext(_ctx, getState()); + enterRule(_localctx, 360, RULE_primaryNoNewArray_lfno_arrayAccess); + int _la; + try { + setState(1945); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1917); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1918); + typeName(); + setState(1923); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1919); + match(LBRACK); + setState(1920); + match(RBRACK); + } + } + setState(1925); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1926); + match(DOT); + setState(1927); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1929); + match(VOID); + setState(1930); + match(DOT); + setState(1931); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1932); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1933); + typeName(); + setState(1934); + match(DOT); + setState(1935); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1937); + match(LPAREN); + setState(1938); + expression(); + setState(1939); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1941); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1942); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1943); + methodInvocation(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1944); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lf_primaryContext extends ParserRuleContext { + public ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() { + return getRuleContext(ClassInstanceCreationExpression_lf_primaryContext.class,0); + } + public FieldAccess_lf_primaryContext fieldAccess_lf_primary() { + return getRuleContext(FieldAccess_lf_primaryContext.class,0); + } + public ArrayAccess_lf_primaryContext arrayAccess_lf_primary() { + return getRuleContext(ArrayAccess_lf_primaryContext.class,0); + } + public MethodInvocation_lf_primaryContext methodInvocation_lf_primary() { + return getRuleContext(MethodInvocation_lf_primaryContext.class,0); + } + public MethodReference_lf_primaryContext methodReference_lf_primary() { + return getRuleContext(MethodReference_lf_primaryContext.class,0); + } + public PrimaryNoNewArray_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary(this); + } + } + + public final PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary() throws RecognitionException { + PrimaryNoNewArray_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 362, RULE_primaryNoNewArray_lf_primary); + try { + setState(1952); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1947); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1948); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1949); + arrayAccess_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1950); + methodInvocation_lf_primary(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1951); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext extends ParserRuleContext { + public PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); + } + } + + public final PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() throws RecognitionException { + PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary); + try { + enterOuterAlt(_localctx, 1); + { + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext extends ParserRuleContext { + public ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() { + return getRuleContext(ClassInstanceCreationExpression_lf_primaryContext.class,0); + } + public FieldAccess_lf_primaryContext fieldAccess_lf_primary() { + return getRuleContext(FieldAccess_lf_primaryContext.class,0); + } + public MethodInvocation_lf_primaryContext methodInvocation_lf_primary() { + return getRuleContext(MethodInvocation_lf_primaryContext.class,0); + } + public MethodReference_lf_primaryContext methodReference_lf_primary() { + return getRuleContext(MethodReference_lf_primaryContext.class,0); + } + public PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); + } + } + + public final PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() throws RecognitionException { + PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 366, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); + try { + setState(1960); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1956); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1957); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1958); + methodInvocation_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1959); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lfno_primaryContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() { + return getRuleContext(ClassInstanceCreationExpression_lfno_primaryContext.class,0); + } + public FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() { + return getRuleContext(FieldAccess_lfno_primaryContext.class,0); + } + public ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() { + return getRuleContext(ArrayAccess_lfno_primaryContext.class,0); + } + public MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() { + return getRuleContext(MethodInvocation_lfno_primaryContext.class,0); + } + public MethodReference_lfno_primaryContext methodReference_lfno_primary() { + return getRuleContext(MethodReference_lfno_primaryContext.class,0); + } + public PrimaryNoNewArray_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary(this); + } + } + + public final PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() throws RecognitionException { + PrimaryNoNewArray_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 368, RULE_primaryNoNewArray_lfno_primary); + int _la; + try { + setState(2002); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1962); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1963); + typeName(); + setState(1968); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1964); + match(LBRACK); + setState(1965); + match(RBRACK); + } + } + setState(1970); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1971); + match(DOT); + setState(1972); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1974); + unannPrimitiveType(); + setState(1979); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1975); + match(LBRACK); + setState(1976); + match(RBRACK); + } + } + setState(1981); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1982); + match(DOT); + setState(1983); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1985); + match(VOID); + setState(1986); + match(DOT); + setState(1987); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1988); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1989); + typeName(); + setState(1990); + match(DOT); + setState(1991); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1993); + match(LPAREN); + setState(1994); + expression(); + setState(1995); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1997); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1998); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1999); + arrayAccess_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(2000); + methodInvocation_lfno_primary(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(2001); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext extends ParserRuleContext { + public PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); + } + } + + public final PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() throws RecognitionException { + PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary); + try { + enterOuterAlt(_localctx, 1); + { + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() { + return getRuleContext(ClassInstanceCreationExpression_lfno_primaryContext.class,0); + } + public FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() { + return getRuleContext(FieldAccess_lfno_primaryContext.class,0); + } + public MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() { + return getRuleContext(MethodInvocation_lfno_primaryContext.class,0); + } + public MethodReference_lfno_primaryContext methodReference_lfno_primary() { + return getRuleContext(MethodReference_lfno_primaryContext.class,0); + } + public PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); + } + } + + public final PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() throws RecognitionException { + PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); + int _la; + try { + setState(2045); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2006); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2007); + typeName(); + setState(2012); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(2008); + match(LBRACK); + setState(2009); + match(RBRACK); + } + } + setState(2014); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2015); + match(DOT); + setState(2016); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2018); + unannPrimitiveType(); + setState(2023); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(2019); + match(LBRACK); + setState(2020); + match(RBRACK); + } + } + setState(2025); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2026); + match(DOT); + setState(2027); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2029); + match(VOID); + setState(2030); + match(DOT); + setState(2031); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2032); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2033); + typeName(); + setState(2034); + match(DOT); + setState(2035); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2037); + match(LPAREN); + setState(2038); + expression(); + setState(2039); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(2041); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(2042); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(2043); + methodInvocation_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(2044); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassInstanceCreationExpressionContext extends ParserRuleContext { + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { + return getRuleContext(TypeArgumentsOrDiamondContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public ClassInstanceCreationExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression(this); + } + } + + public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { + ClassInstanceCreationExpressionContext _localctx = new ClassInstanceCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_classInstanceCreationExpression); + int _la; + try { + setState(2130); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2047); + match(NEW); + setState(2049); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2048); + typeArguments(); + } + } + + setState(2054); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2051); + annotation(); + } + } + setState(2056); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2057); + match(Identifier); + setState(2068); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2058); + match(DOT); + setState(2062); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2059); + annotation(); + } + } + setState(2064); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2065); + match(Identifier); + } + } + setState(2070); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2072); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2071); + typeArgumentsOrDiamond(); + } + } + + setState(2074); + match(LPAREN); + setState(2076); + _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 << (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(2075); + argumentList(); + } + } + + setState(2078); + match(RPAREN); + setState(2080); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2079); + classBody(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2082); + expressionName(); + setState(2083); + match(DOT); + setState(2084); + match(NEW); + setState(2086); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2085); + typeArguments(); + } + } + + setState(2091); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2088); + annotation(); + } + } + setState(2093); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2094); + match(Identifier); + setState(2096); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2095); + typeArgumentsOrDiamond(); + } + } + + setState(2098); + match(LPAREN); + setState(2100); + _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 << (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(2099); + argumentList(); + } + } + + setState(2102); + match(RPAREN); + setState(2104); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2103); + classBody(); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2106); + primary(); + setState(2107); + match(DOT); + setState(2108); + match(NEW); + setState(2110); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2109); + typeArguments(); + } + } + + setState(2115); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2112); + annotation(); + } + } + setState(2117); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2118); + match(Identifier); + setState(2120); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2119); + typeArgumentsOrDiamond(); + } + } + + setState(2122); + match(LPAREN); + setState(2124); + _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 << (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(2123); + argumentList(); + } + } + + setState(2126); + match(RPAREN); + setState(2128); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2127); + classBody(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassInstanceCreationExpression_lf_primaryContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { + return getRuleContext(TypeArgumentsOrDiamondContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public ClassInstanceCreationExpression_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lf_primary(this); + } + } + + public final ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() throws RecognitionException { + ClassInstanceCreationExpression_lf_primaryContext _localctx = new ClassInstanceCreationExpression_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_classInstanceCreationExpression_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2132); + match(DOT); + setState(2133); + match(NEW); + setState(2135); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2134); + typeArguments(); + } + } + + setState(2140); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2137); + annotation(); + } + } + setState(2142); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2143); + match(Identifier); + setState(2145); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2144); + typeArgumentsOrDiamond(); + } + } + + setState(2147); + match(LPAREN); + setState(2149); + _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 << (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(2148); + argumentList(); + } + } + + setState(2151); + match(RPAREN); + setState(2153); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { + case 1: + { + setState(2152); + classBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ClassInstanceCreationExpression_lfno_primaryContext extends ParserRuleContext { + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { + return getRuleContext(TypeArgumentsOrDiamondContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public ClassInstanceCreationExpression_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lfno_primary(this); + } + } + + public final ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() throws RecognitionException { + ClassInstanceCreationExpression_lfno_primaryContext _localctx = new ClassInstanceCreationExpression_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_classInstanceCreationExpression_lfno_primary); + int _la; + try { + setState(2214); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEW: + enterOuterAlt(_localctx, 1); + { + setState(2155); + match(NEW); + setState(2157); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2156); + typeArguments(); + } + } + + setState(2162); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2159); + annotation(); + } + } + setState(2164); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2165); + match(Identifier); + setState(2176); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2166); + match(DOT); + setState(2170); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2167); + annotation(); + } + } + setState(2172); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2173); + match(Identifier); + } + } + setState(2178); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2180); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2179); + typeArgumentsOrDiamond(); + } + } + + setState(2182); + match(LPAREN); + setState(2184); + _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 << (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(2183); + argumentList(); + } + } + + setState(2186); + match(RPAREN); + setState(2188); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { + case 1: + { + setState(2187); + classBody(); + } + break; + } + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2190); + expressionName(); + setState(2191); + match(DOT); + setState(2192); + match(NEW); + setState(2194); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2193); + typeArguments(); + } + } + + setState(2199); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2196); + annotation(); + } + } + setState(2201); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2202); + match(Identifier); + setState(2204); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2203); + typeArgumentsOrDiamond(); + } + } + + setState(2206); + match(LPAREN); + setState(2208); + _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 << (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(2207); + argumentList(); + } + } + + setState(2210); + match(RPAREN); + setState(2212); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { + case 1: + { + setState(2211); + classBody(); + } + 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 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 Java8Listener ) ((Java8Listener)listener).enterTypeArgumentsOrDiamond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentsOrDiamond(this); + } + } + + public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { + TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_typeArgumentsOrDiamond); + try { + setState(2219); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2216); + typeArguments(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2217); + match(LT); + setState(2218); + match(GT); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FieldAccessContext extends ParserRuleContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public FieldAccessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess(this); + } + } + + public final FieldAccessContext fieldAccess() throws RecognitionException { + FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_fieldAccess); + try { + setState(2234); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2221); + primary(); + setState(2222); + match(DOT); + setState(2223); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2225); + match(SUPER); + setState(2226); + match(DOT); + setState(2227); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2228); + typeName(); + setState(2229); + match(DOT); + setState(2230); + match(SUPER); + setState(2231); + match(DOT); + setState(2232); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FieldAccess_lf_primaryContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public FieldAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lf_primary(this); + } + } + + public final FieldAccess_lf_primaryContext fieldAccess_lf_primary() throws RecognitionException { + FieldAccess_lf_primaryContext _localctx = new FieldAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_fieldAccess_lf_primary); + try { + enterOuterAlt(_localctx, 1); + { + setState(2236); + match(DOT); + setState(2237); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FieldAccess_lfno_primaryContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public FieldAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lfno_primary(this); + } + } + + public final FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() throws RecognitionException { + FieldAccess_lfno_primaryContext _localctx = new FieldAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_fieldAccess_lfno_primary); + try { + setState(2248); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPER: + enterOuterAlt(_localctx, 1); + { + setState(2239); + match(SUPER); + setState(2240); + match(DOT); + setState(2241); + match(Identifier); + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2242); + typeName(); + setState(2243); + match(DOT); + setState(2244); + match(SUPER); + setState(2245); + match(DOT); + setState(2246); + match(Identifier); + } + 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 ArrayAccessContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() { + return getRuleContext(PrimaryNoNewArray_lfno_arrayAccessContext.class,0); + } + public List primaryNoNewArray_lf_arrayAccess() { + return getRuleContexts(PrimaryNoNewArray_lf_arrayAccessContext.class); + } + public PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess(int i) { + return getRuleContext(PrimaryNoNewArray_lf_arrayAccessContext.class,i); + } + public ArrayAccessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayAccess; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess(this); + } + } + + public final ArrayAccessContext arrayAccess() throws RecognitionException { + ArrayAccessContext _localctx = new ArrayAccessContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_arrayAccess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2260); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) { + case 1: + { + setState(2250); + expressionName(); + setState(2251); + match(LBRACK); + setState(2252); + expression(); + setState(2253); + match(RBRACK); + } + break; + case 2: + { + setState(2255); + primaryNoNewArray_lfno_arrayAccess(); + setState(2256); + match(LBRACK); + setState(2257); + expression(); + setState(2258); + match(RBRACK); + } + break; + } + setState(2269); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(2262); + primaryNoNewArray_lf_arrayAccess(); + setState(2263); + match(LBRACK); + setState(2264); + expression(); + setState(2265); + match(RBRACK); + } + } + setState(2271); + _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 ArrayAccess_lf_primaryContext extends ParserRuleContext { + public PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() { + return getRuleContext(PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() { + return getRuleContexts(PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class); + } + public PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(int i) { + return getRuleContext(PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class,i); + } + public ArrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayAccess_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lf_primary(this); + } + } + + public final ArrayAccess_lf_primaryContext arrayAccess_lf_primary() throws RecognitionException { + ArrayAccess_lf_primaryContext _localctx = new ArrayAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_arrayAccess_lf_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2272); + primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); + setState(2273); + match(LBRACK); + setState(2274); + expression(); + setState(2275); + match(RBRACK); + } + setState(2284); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2277); + primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); + setState(2278); + match(LBRACK); + setState(2279); + expression(); + setState(2280); + match(RBRACK); + } + } + } + setState(2286); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ArrayAccess_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() { + return getRuleContext(PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext.class,0); + } + public List primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() { + return getRuleContexts(PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class); + } + public PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(int i) { + return getRuleContext(PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class,i); + } + public ArrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayAccess_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lfno_primary(this); + } + } + + public final ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() throws RecognitionException { + ArrayAccess_lfno_primaryContext _localctx = new ArrayAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_arrayAccess_lfno_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2297); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { + case 1: + { + setState(2287); + expressionName(); + setState(2288); + match(LBRACK); + setState(2289); + expression(); + setState(2290); + match(RBRACK); + } + break; + case 2: + { + setState(2292); + primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); + setState(2293); + match(LBRACK); + setState(2294); + expression(); + setState(2295); + match(RBRACK); + } + break; + } + setState(2306); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2299); + primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); + setState(2300); + match(LBRACK); + setState(2301); + expression(); + setState(2302); + match(RBRACK); + } + } + } + setState(2308); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodInvocationContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public MethodInvocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation(this); + } + } + + public final MethodInvocationContext methodInvocation() throws RecognitionException { + MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_methodInvocation); + int _la; + try { + setState(2377); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2309); + methodName(); + setState(2310); + match(LPAREN); + setState(2312); + _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 << (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(2311); + argumentList(); + } + } + + setState(2314); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2316); + typeName(); + setState(2317); + match(DOT); + setState(2319); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2318); + typeArguments(); + } + } + + setState(2321); + match(Identifier); + setState(2322); + match(LPAREN); + setState(2324); + _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 << (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(2323); + argumentList(); + } + } + + setState(2326); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2328); + expressionName(); + setState(2329); + match(DOT); + setState(2331); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2330); + typeArguments(); + } + } + + setState(2333); + match(Identifier); + setState(2334); + match(LPAREN); + setState(2336); + _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 << (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(2335); + argumentList(); + } + } + + setState(2338); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2340); + primary(); + setState(2341); + match(DOT); + setState(2343); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2342); + typeArguments(); + } + } + + setState(2345); + match(Identifier); + setState(2346); + match(LPAREN); + setState(2348); + _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 << (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(2347); + argumentList(); + } + } + + setState(2350); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2352); + match(SUPER); + setState(2353); + match(DOT); + setState(2355); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2354); + typeArguments(); + } + } + + setState(2357); + match(Identifier); + setState(2358); + match(LPAREN); + setState(2360); + _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 << (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(2359); + argumentList(); + } + } + + setState(2362); + match(RPAREN); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2363); + typeName(); + setState(2364); + match(DOT); + setState(2365); + match(SUPER); + setState(2366); + match(DOT); + setState(2368); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2367); + typeArguments(); + } + } + + setState(2370); + match(Identifier); + setState(2371); + match(LPAREN); + setState(2373); + _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 << (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(2372); + argumentList(); + } + } + + setState(2375); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodInvocation_lf_primaryContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public MethodInvocation_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lf_primary(this); + } + } + + public final MethodInvocation_lf_primaryContext methodInvocation_lf_primary() throws RecognitionException { + MethodInvocation_lf_primaryContext _localctx = new MethodInvocation_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_methodInvocation_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2379); + match(DOT); + setState(2381); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2380); + typeArguments(); + } + } + + setState(2383); + match(Identifier); + setState(2384); + match(LPAREN); + setState(2386); + _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 << (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(2385); + argumentList(); + } + } + + setState(2388); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodInvocation_lfno_primaryContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public MethodInvocation_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lfno_primary(this); + } + } + + public final MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() throws RecognitionException { + MethodInvocation_lfno_primaryContext _localctx = new MethodInvocation_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_methodInvocation_lfno_primary); + int _la; + try { + setState(2446); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2390); + methodName(); + setState(2391); + match(LPAREN); + setState(2393); + _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 << (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(2392); + argumentList(); + } + } + + setState(2395); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2397); + typeName(); + setState(2398); + match(DOT); + setState(2400); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2399); + typeArguments(); + } + } + + setState(2402); + match(Identifier); + setState(2403); + match(LPAREN); + setState(2405); + _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 << (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(2404); + argumentList(); + } + } + + setState(2407); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2409); + expressionName(); + setState(2410); + match(DOT); + setState(2412); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2411); + typeArguments(); + } + } + + setState(2414); + match(Identifier); + setState(2415); + match(LPAREN); + setState(2417); + _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 << (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(2416); + argumentList(); + } + } + + setState(2419); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2421); + match(SUPER); + setState(2422); + match(DOT); + setState(2424); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2423); + typeArguments(); + } + } + + setState(2426); + match(Identifier); + setState(2427); + match(LPAREN); + setState(2429); + _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 << (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(2428); + argumentList(); + } + } + + setState(2431); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2432); + typeName(); + setState(2433); + match(DOT); + setState(2434); + match(SUPER); + setState(2435); + match(DOT); + setState(2437); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2436); + typeArguments(); + } + } + + setState(2439); + match(Identifier); + setState(2440); + match(LPAREN); + setState(2442); + _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 << (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(2441); + argumentList(); + } + } + + setState(2444); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ArgumentListContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArgumentList(this); + } + } + + public final ArgumentListContext argumentList() throws RecognitionException { + ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState()); + enterRule(_localctx, 400, RULE_argumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2448); + expression(); + setState(2453); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2449); + match(COMMA); + setState(2450); + expression(); + } + } + setState(2455); + _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 MethodReferenceContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public ArrayTypeContext arrayType() { + return getRuleContext(ArrayTypeContext.class,0); + } + public MethodReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference(this); + } + } + + public final MethodReferenceContext methodReference() throws RecognitionException { + MethodReferenceContext _localctx = new MethodReferenceContext(_ctx, getState()); + enterRule(_localctx, 402, RULE_methodReference); + int _la; + try { + setState(2503); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2456); + expressionName(); + setState(2457); + match(COLONCOLON); + setState(2459); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2458); + typeArguments(); + } + } + + setState(2461); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2463); + referenceType(); + setState(2464); + match(COLONCOLON); + setState(2466); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2465); + typeArguments(); + } + } + + setState(2468); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2470); + primary(); + setState(2471); + match(COLONCOLON); + setState(2473); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2472); + typeArguments(); + } + } + + setState(2475); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2477); + match(SUPER); + setState(2478); + match(COLONCOLON); + setState(2480); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2479); + typeArguments(); + } + } + + setState(2482); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2483); + typeName(); + setState(2484); + match(DOT); + setState(2485); + match(SUPER); + setState(2486); + match(COLONCOLON); + setState(2488); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2487); + typeArguments(); + } + } + + setState(2490); + match(Identifier); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2492); + classType(); + setState(2493); + match(COLONCOLON); + setState(2495); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2494); + typeArguments(); + } + } + + setState(2497); + match(NEW); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2499); + arrayType(); + setState(2500); + match(COLONCOLON); + setState(2501); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodReference_lf_primaryContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public MethodReference_lf_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodReference_lf_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lf_primary(this); + } + } + + public final MethodReference_lf_primaryContext methodReference_lf_primary() throws RecognitionException { + MethodReference_lf_primaryContext _localctx = new MethodReference_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_methodReference_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2505); + match(COLONCOLON); + setState(2507); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2506); + typeArguments(); + } + } + + setState(2509); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodReference_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public ArrayTypeContext arrayType() { + return getRuleContext(ArrayTypeContext.class,0); + } + public MethodReference_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodReference_lfno_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lfno_primary(this); + } + } + + public final MethodReference_lfno_primaryContext methodReference_lfno_primary() throws RecognitionException { + MethodReference_lfno_primaryContext _localctx = new MethodReference_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_methodReference_lfno_primary); + int _la; + try { + setState(2551); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2511); + expressionName(); + setState(2512); + match(COLONCOLON); + setState(2514); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2513); + typeArguments(); + } + } + + setState(2516); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2518); + referenceType(); + setState(2519); + match(COLONCOLON); + setState(2521); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2520); + typeArguments(); + } + } + + setState(2523); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2525); + match(SUPER); + setState(2526); + match(COLONCOLON); + setState(2528); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2527); + typeArguments(); + } + } + + setState(2530); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2531); + typeName(); + setState(2532); + match(DOT); + setState(2533); + match(SUPER); + setState(2534); + match(COLONCOLON); + setState(2536); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2535); + typeArguments(); + } + } + + setState(2538); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2540); + classType(); + setState(2541); + match(COLONCOLON); + setState(2543); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2542); + typeArguments(); + } + } + + setState(2545); + match(NEW); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2547); + arrayType(); + setState(2548); + match(COLONCOLON); + setState(2549); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ArrayCreationExpressionContext extends ParserRuleContext { + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public DimExprsContext dimExprs() { + return getRuleContext(DimExprsContext.class,0); + } + public DimsContext dims() { + return getRuleContext(DimsContext.class,0); + } + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public ArrayInitializerContext arrayInitializer() { + return getRuleContext(ArrayInitializerContext.class,0); + } + public ArrayCreationExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayCreationExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayCreationExpression(this); + } + } + + public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { + ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_arrayCreationExpression); + try { + setState(2575); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2553); + match(NEW); + setState(2554); + primitiveType(); + setState(2555); + dimExprs(); + setState(2557); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { + case 1: + { + setState(2556); + dims(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2559); + match(NEW); + setState(2560); + classOrInterfaceType(); + setState(2561); + dimExprs(); + setState(2563); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + case 1: + { + setState(2562); + dims(); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2565); + match(NEW); + setState(2566); + primitiveType(); + setState(2567); + dims(); + setState(2568); + arrayInitializer(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2570); + match(NEW); + setState(2571); + classOrInterfaceType(); + setState(2572); + dims(); + setState(2573); + arrayInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DimExprsContext extends ParserRuleContext { + public List dimExpr() { + return getRuleContexts(DimExprContext.class); + } + public DimExprContext dimExpr(int i) { + return getRuleContext(DimExprContext.class,i); + } + public DimExprsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dimExprs; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExprs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExprs(this); + } + } + + public final DimExprsContext dimExprs() throws RecognitionException { + DimExprsContext _localctx = new DimExprsContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_dimExprs); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2577); + dimExpr(); + setState(2581); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2578); + dimExpr(); + } + } + } + setState(2583); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DimExprContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public DimExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dimExpr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExpr(this); + } + } + + public final DimExprContext dimExpr() throws RecognitionException { + DimExprContext _localctx = new DimExprContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_dimExpr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2587); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2584); + annotation(); + } + } + setState(2589); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2590); + match(LBRACK); + setState(2591); + expression(); + setState(2592); + match(RBRACK); + } + } + 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 Java8Listener ) ((Java8Listener)listener).enterConstantExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantExpression(this); + } + } + + public final ConstantExpressionContext constantExpression() throws RecognitionException { + ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_constantExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2594); + expression(); + } + } + 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 LambdaExpressionContext lambdaExpression() { + return getRuleContext(LambdaExpressionContext.class,0); + } + public AssignmentExpressionContext assignmentExpression() { + return getRuleContext(AssignmentExpressionContext.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 Java8Listener ) ((Java8Listener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_expression); + try { + setState(2598); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2596); + lambdaExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2597); + assignmentExpression(); + } + break; + } + } + 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 Java8Listener ) ((Java8Listener)listener).enterLambdaExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaExpression(this); + } + } + + public final LambdaExpressionContext lambdaExpression() throws RecognitionException { + LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_lambdaExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2600); + lambdaParameters(); + setState(2601); + match(ARROW); + setState(2602); + 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(Java8Parser.Identifier, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.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 Java8Listener ) ((Java8Listener)listener).enterLambdaParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaParameters(this); + } + } + + public final LambdaParametersContext lambdaParameters() throws RecognitionException { + LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_lambdaParameters); + int _la; + try { + setState(2610); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(2604); + match(Identifier); + } + break; + case LPAREN: + enterOuterAlt(_localctx, 2); + { + setState(2605); + match(LPAREN); + setState(2607); + _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(2606); + formalParameterList(); + } + } + + setState(2609); + match(RPAREN); + } + 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 InferredFormalParameterListContext extends ParserRuleContext { + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.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 Java8Listener ) ((Java8Listener)listener).enterInferredFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInferredFormalParameterList(this); + } + } + + public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { + InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_inferredFormalParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2612); + match(Identifier); + setState(2617); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2613); + match(COMMA); + setState(2614); + match(Identifier); + } + } + setState(2619); + _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 Java8Listener ) ((Java8Listener)listener).enterLambdaBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaBody(this); + } + } + + public final LambdaBodyContext lambdaBody() throws RecognitionException { + LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_lambdaBody); + try { + setState(2622); + _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 BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case Identifier: + case AT: + enterOuterAlt(_localctx, 1); + { + setState(2620); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(2621); + 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 AssignmentExpressionContext extends ParserRuleContext { + public ConditionalExpressionContext conditionalExpression() { + return getRuleContext(ConditionalExpressionContext.class,0); + } + public AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public AssignmentExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignmentExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentExpression(this); + } + } + + public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { + AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); + enterRule(_localctx, 426, RULE_assignmentExpression); + try { + setState(2626); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2624); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2625); + assignment(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentContext extends ParserRuleContext { + public LeftHandSideContext leftHandSide() { + return getRuleContext(LeftHandSideContext.class,0); + } + public AssignmentOperatorContext assignmentOperator() { + return getRuleContext(AssignmentOperatorContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public AssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignment(this); + } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(2628); + leftHandSide(); + setState(2629); + assignmentOperator(); + setState(2630); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LeftHandSideContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public FieldAccessContext fieldAccess() { + return getRuleContext(FieldAccessContext.class,0); + } + public ArrayAccessContext arrayAccess() { + return getRuleContext(ArrayAccessContext.class,0); + } + public LeftHandSideContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_leftHandSide; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLeftHandSide(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLeftHandSide(this); + } + } + + public final LeftHandSideContext leftHandSide() throws RecognitionException { + LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_leftHandSide); + try { + setState(2635); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2632); + expressionName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2633); + fieldAccess(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2634); + arrayAccess(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentOperatorContext extends ParserRuleContext { + public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignmentOperator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentOperator(this); + } + } + + public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { + AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState()); + enterRule(_localctx, 432, RULE_assignmentOperator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2637); + _la = _input.LA(1); + if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (ASSIGN - 67)) | (1L << (ADD_ASSIGN - 67)) | (1L << (SUB_ASSIGN - 67)) | (1L << (MUL_ASSIGN - 67)) | (1L << (DIV_ASSIGN - 67)) | (1L << (AND_ASSIGN - 67)) | (1L << (OR_ASSIGN - 67)) | (1L << (XOR_ASSIGN - 67)) | (1L << (MOD_ASSIGN - 67)) | (1L << (LSHIFT_ASSIGN - 67)) | (1L << (RSHIFT_ASSIGN - 67)) | (1L << (URSHIFT_ASSIGN - 67)))) != 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 ConditionalExpressionContext extends ParserRuleContext { + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ConditionalExpressionContext conditionalExpression() { + return getRuleContext(ConditionalExpressionContext.class,0); + } + public ConditionalExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalExpression(this); + } + } + + public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { + ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); + enterRule(_localctx, 434, RULE_conditionalExpression); + try { + setState(2646); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2639); + conditionalOrExpression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2640); + conditionalOrExpression(0); + setState(2641); + match(QUESTION); + setState(2642); + expression(); + setState(2643); + match(COLON); + setState(2644); + conditionalExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConditionalOrExpressionContext extends ParserRuleContext { + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public ConditionalOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalOrExpression(this); + } + } + + public final ConditionalOrExpressionContext conditionalOrExpression() throws RecognitionException { + return conditionalOrExpression(0); + } + + private ConditionalOrExpressionContext conditionalOrExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ConditionalOrExpressionContext _localctx = new ConditionalOrExpressionContext(_ctx, _parentState); + ConditionalOrExpressionContext _prevctx = _localctx; + int _startState = 436; + enterRecursionRule(_localctx, 436, RULE_conditionalOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2649); + conditionalAndExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2656); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); + setState(2651); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2652); + match(OR); + setState(2653); + conditionalAndExpression(0); + } + } + } + setState(2658); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ConditionalAndExpressionContext extends ParserRuleContext { + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public ConditionalAndExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalAndExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalAndExpression(this); + } + } + + public final ConditionalAndExpressionContext conditionalAndExpression() throws RecognitionException { + return conditionalAndExpression(0); + } + + private ConditionalAndExpressionContext conditionalAndExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ConditionalAndExpressionContext _localctx = new ConditionalAndExpressionContext(_ctx, _parentState); + ConditionalAndExpressionContext _prevctx = _localctx; + int _startState = 438; + enterRecursionRule(_localctx, 438, RULE_conditionalAndExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2660); + inclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2667); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); + setState(2662); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2663); + match(AND); + setState(2664); + inclusiveOrExpression(0); + } + } + } + setState(2669); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class InclusiveOrExpressionContext extends ParserRuleContext { + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public InclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inclusiveOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInclusiveOrExpression(this); + } + } + + public final InclusiveOrExpressionContext inclusiveOrExpression() throws RecognitionException { + return inclusiveOrExpression(0); + } + + private InclusiveOrExpressionContext inclusiveOrExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + InclusiveOrExpressionContext _localctx = new InclusiveOrExpressionContext(_ctx, _parentState); + InclusiveOrExpressionContext _prevctx = _localctx; + int _startState = 440; + enterRecursionRule(_localctx, 440, RULE_inclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2671); + exclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2678); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); + setState(2673); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2674); + match(BITOR); + setState(2675); + exclusiveOrExpression(0); + } + } + } + setState(2680); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ExclusiveOrExpressionContext extends ParserRuleContext { + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public ExclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exclusiveOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExclusiveOrExpression(this); + } + } + + public final ExclusiveOrExpressionContext exclusiveOrExpression() throws RecognitionException { + return exclusiveOrExpression(0); + } + + private ExclusiveOrExpressionContext exclusiveOrExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExclusiveOrExpressionContext _localctx = new ExclusiveOrExpressionContext(_ctx, _parentState); + ExclusiveOrExpressionContext _prevctx = _localctx; + int _startState = 442; + enterRecursionRule(_localctx, 442, RULE_exclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2682); + andExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2689); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); + setState(2684); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2685); + match(CARET); + setState(2686); + andExpression(0); + } + } + } + setState(2691); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AndExpressionContext extends ParserRuleContext { + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public AndExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_andExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAndExpression(this); + } + } + + public final AndExpressionContext andExpression() throws RecognitionException { + return andExpression(0); + } + + private AndExpressionContext andExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + AndExpressionContext _localctx = new AndExpressionContext(_ctx, _parentState); + AndExpressionContext _prevctx = _localctx; + int _startState = 444; + enterRecursionRule(_localctx, 444, RULE_andExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2693); + equalityExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2700); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_andExpression); + setState(2695); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2696); + match(BITAND); + setState(2697); + equalityExpression(0); + } + } + } + setState(2702); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class EqualityExpressionContext extends ParserRuleContext { + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public EqualityExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_equalityExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEqualityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEqualityExpression(this); + } + } + + public final EqualityExpressionContext equalityExpression() throws RecognitionException { + return equalityExpression(0); + } + + private EqualityExpressionContext equalityExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + EqualityExpressionContext _localctx = new EqualityExpressionContext(_ctx, _parentState); + EqualityExpressionContext _prevctx = _localctx; + int _startState = 446; + enterRecursionRule(_localctx, 446, RULE_equalityExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2704); + relationalExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2714); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2712); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { + case 1: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2706); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2707); + match(EQUAL); + setState(2708); + relationalExpression(0); + } + break; + case 2: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2709); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2710); + match(NOTEQUAL); + setState(2711); + relationalExpression(0); + } + break; + } + } + } + setState(2716); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class RelationalExpressionContext extends ParserRuleContext { + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public RelationalExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relationalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterRelationalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitRelationalExpression(this); + } + } + + public final RelationalExpressionContext relationalExpression() throws RecognitionException { + return relationalExpression(0); + } + + private RelationalExpressionContext relationalExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + RelationalExpressionContext _localctx = new RelationalExpressionContext(_ctx, _parentState); + RelationalExpressionContext _prevctx = _localctx; + int _startState = 448; + enterRecursionRule(_localctx, 448, RULE_relationalExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2718); + shiftExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2737); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2735); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { + case 1: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2720); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(2721); + match(LT); + setState(2722); + shiftExpression(0); + } + break; + case 2: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2723); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(2724); + match(GT); + setState(2725); + shiftExpression(0); + } + break; + case 3: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2726); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2727); + match(LE); + setState(2728); + shiftExpression(0); + } + break; + case 4: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2729); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2730); + match(GE); + setState(2731); + shiftExpression(0); + } + break; + case 5: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2732); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2733); + match(INSTANCEOF); + setState(2734); + referenceType(); + } + break; + } + } + } + setState(2739); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ShiftExpressionContext extends ParserRuleContext { + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public ShiftExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shiftExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterShiftExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitShiftExpression(this); + } + } + + public final ShiftExpressionContext shiftExpression() throws RecognitionException { + return shiftExpression(0); + } + + private ShiftExpressionContext shiftExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ShiftExpressionContext _localctx = new ShiftExpressionContext(_ctx, _parentState); + ShiftExpressionContext _prevctx = _localctx; + int _startState = 450; + enterRecursionRule(_localctx, 450, RULE_shiftExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2741); + additiveExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2758); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2756); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) { + case 1: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2743); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2744); + match(LT); + setState(2745); + match(LT); + setState(2746); + additiveExpression(0); + } + break; + case 2: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2747); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2748); + match(GT); + setState(2749); + match(GT); + setState(2750); + additiveExpression(0); + } + break; + case 3: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2751); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2752); + match(GT); + setState(2753); + match(GT); + setState(2754); + match(GT); + setState(2755); + additiveExpression(0); + } + break; + } + } + } + setState(2760); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AdditiveExpressionContext extends ParserRuleContext { + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additiveExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditiveExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditiveExpression(this); + } + } + + public final AdditiveExpressionContext additiveExpression() throws RecognitionException { + return additiveExpression(0); + } + + private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, _parentState); + AdditiveExpressionContext _prevctx = _localctx; + int _startState = 452; + enterRecursionRule(_localctx, 452, RULE_additiveExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2762); + multiplicativeExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2772); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2770); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { + case 1: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2764); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2765); + match(ADD); + setState(2766); + multiplicativeExpression(0); + } + break; + case 2: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2767); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2768); + match(SUB); + setState(2769); + multiplicativeExpression(0); + } + break; + } + } + } + setState(2774); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class MultiplicativeExpressionContext extends ParserRuleContext { + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public MultiplicativeExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multiplicativeExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMultiplicativeExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMultiplicativeExpression(this); + } + } + + public final MultiplicativeExpressionContext multiplicativeExpression() throws RecognitionException { + return multiplicativeExpression(0); + } + + private MultiplicativeExpressionContext multiplicativeExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + MultiplicativeExpressionContext _localctx = new MultiplicativeExpressionContext(_ctx, _parentState); + MultiplicativeExpressionContext _prevctx = _localctx; + int _startState = 454; + enterRecursionRule(_localctx, 454, RULE_multiplicativeExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2776); + unaryExpression(); + } + _ctx.stop = _input.LT(-1); + setState(2789); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2787); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { + case 1: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2778); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2779); + match(MUL); + setState(2780); + unaryExpression(); + } + break; + case 2: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2781); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2782); + match(DIV); + setState(2783); + unaryExpression(); + } + break; + case 3: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2784); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2785); + match(MOD); + setState(2786); + unaryExpression(); + } + break; + } + } + } + setState(2791); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class UnaryExpressionContext extends ParserRuleContext { + public PreIncrementExpressionContext preIncrementExpression() { + return getRuleContext(PreIncrementExpressionContext.class,0); + } + public PreDecrementExpressionContext preDecrementExpression() { + return getRuleContext(PreDecrementExpressionContext.class,0); + } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() { + return getRuleContext(UnaryExpressionNotPlusMinusContext.class,0); + } + public UnaryExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unaryExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpression(this); + } + } + + public final UnaryExpressionContext unaryExpression() throws RecognitionException { + UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_unaryExpression); + try { + setState(2799); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + enterOuterAlt(_localctx, 1); + { + setState(2792); + preIncrementExpression(); + } + break; + case DEC: + enterOuterAlt(_localctx, 2); + { + setState(2793); + preDecrementExpression(); + } + break; + case ADD: + enterOuterAlt(_localctx, 3); + { + setState(2794); + match(ADD); + setState(2795); + unaryExpression(); + } + break; + case SUB: + enterOuterAlt(_localctx, 4); + { + setState(2796); + match(SUB); + setState(2797); + unaryExpression(); + } + 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 BANG: + case TILDE: + case Identifier: + case AT: + enterOuterAlt(_localctx, 5); + { + setState(2798); + unaryExpressionNotPlusMinus(); + } + 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 PreIncrementExpressionContext extends ParserRuleContext { + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public PreIncrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_preIncrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreIncrementExpression(this); + } + } + + public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { + PreIncrementExpressionContext _localctx = new PreIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 458, RULE_preIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2801); + match(INC); + setState(2802); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PreDecrementExpressionContext extends ParserRuleContext { + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public PreDecrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_preDecrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreDecrementExpression(this); + } + } + + public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { + PreDecrementExpressionContext _localctx = new PreDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_preDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2804); + match(DEC); + setState(2805); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnaryExpressionNotPlusMinusContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public CastExpressionContext castExpression() { + return getRuleContext(CastExpressionContext.class,0); + } + public UnaryExpressionNotPlusMinusContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unaryExpressionNotPlusMinus; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpressionNotPlusMinus(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpressionNotPlusMinus(this); + } + } + + public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { + UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_unaryExpressionNotPlusMinus); + try { + setState(2813); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2807); + postfixExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2808); + match(TILDE); + setState(2809); + unaryExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2810); + match(BANG); + setState(2811); + unaryExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2812); + castExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PostfixExpressionContext extends ParserRuleContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List postIncrementExpression_lf_postfixExpression() { + return getRuleContexts(PostIncrementExpression_lf_postfixExpressionContext.class); + } + public PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression(int i) { + return getRuleContext(PostIncrementExpression_lf_postfixExpressionContext.class,i); + } + public List postDecrementExpression_lf_postfixExpression() { + return getRuleContexts(PostDecrementExpression_lf_postfixExpressionContext.class); + } + public PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression(int i) { + return getRuleContext(PostDecrementExpression_lf_postfixExpressionContext.class,i); + } + public PostfixExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostfixExpression(this); + } + } + + public final PostfixExpressionContext postfixExpression() throws RecognitionException { + PostfixExpressionContext _localctx = new PostfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 464, RULE_postfixExpression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2817); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { + case 1: + { + setState(2815); + primary(); + } + break; + case 2: + { + setState(2816); + expressionName(); + } + break; + } + setState(2823); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); + while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(2821); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + { + setState(2819); + postIncrementExpression_lf_postfixExpression(); + } + break; + case DEC: + { + setState(2820); + postDecrementExpression_lf_postfixExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(2825); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PostIncrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public PostIncrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postIncrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression(this); + } + } + + public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { + PostIncrementExpressionContext _localctx = new PostIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 466, RULE_postIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2826); + postfixExpression(); + setState(2827); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PostIncrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public PostIncrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postIncrementExpression_lf_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression_lf_postfixExpression(this); + } + } + + public final PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression() throws RecognitionException { + PostIncrementExpression_lf_postfixExpressionContext _localctx = new PostIncrementExpression_lf_postfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 468, RULE_postIncrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2829); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PostDecrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public PostDecrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postDecrementExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression(this); + } + } + + public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { + PostDecrementExpressionContext _localctx = new PostDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_postDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2831); + postfixExpression(); + setState(2832); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PostDecrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public PostDecrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postDecrementExpression_lf_postfixExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression_lf_postfixExpression(this); + } + } + + public final PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression() throws RecognitionException { + PostDecrementExpression_lf_postfixExpressionContext _localctx = new PostDecrementExpression_lf_postfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 472, RULE_postDecrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2834); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class CastExpressionContext extends ParserRuleContext { + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() { + return getRuleContext(UnaryExpressionNotPlusMinusContext.class,0); + } + public List additionalBound() { + return getRuleContexts(AdditionalBoundContext.class); + } + public AdditionalBoundContext additionalBound(int i) { + return getRuleContext(AdditionalBoundContext.class,i); + } + public LambdaExpressionContext lambdaExpression() { + return getRuleContext(LambdaExpressionContext.class,0); + } + public CastExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_castExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCastExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCastExpression(this); + } + } + + public final CastExpressionContext castExpression() throws RecognitionException { + CastExpressionContext _localctx = new CastExpressionContext(_ctx, getState()); + enterRule(_localctx, 474, RULE_castExpression); + int _la; + try { + setState(2863); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,327,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2836); + match(LPAREN); + setState(2837); + primitiveType(); + setState(2838); + match(RPAREN); + setState(2839); + unaryExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2841); + match(LPAREN); + setState(2842); + referenceType(); + setState(2846); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2843); + additionalBound(); + } + } + setState(2848); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2849); + match(RPAREN); + setState(2850); + unaryExpressionNotPlusMinus(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2852); + match(LPAREN); + setState(2853); + referenceType(); + setState(2857); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2854); + additionalBound(); + } + } + setState(2859); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2860); + match(RPAREN); + setState(2861); + lambdaExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 26: + return packageName_sempred((PackageNameContext)_localctx, predIndex); + case 28: + return packageOrTypeName_sempred((PackageOrTypeNameContext)_localctx, predIndex); + case 31: + return ambiguousName_sempred((AmbiguousNameContext)_localctx, predIndex); + case 218: + return conditionalOrExpression_sempred((ConditionalOrExpressionContext)_localctx, predIndex); + case 219: + return conditionalAndExpression_sempred((ConditionalAndExpressionContext)_localctx, predIndex); + case 220: + return inclusiveOrExpression_sempred((InclusiveOrExpressionContext)_localctx, predIndex); + case 221: + return exclusiveOrExpression_sempred((ExclusiveOrExpressionContext)_localctx, predIndex); + case 222: + return andExpression_sempred((AndExpressionContext)_localctx, predIndex); + case 223: + return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); + case 224: + return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); + case 225: + return shiftExpression_sempred((ShiftExpressionContext)_localctx, predIndex); + case 226: + return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); + case 227: + return multiplicativeExpression_sempred((MultiplicativeExpressionContext)_localctx, predIndex); + } + return true; + } + private boolean packageName_sempred(PackageNameContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 1); + } + return true; + } + private boolean packageOrTypeName_sempred(PackageOrTypeNameContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return precpred(_ctx, 1); + } + return true; + } + private boolean ambiguousName_sempred(AmbiguousNameContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return precpred(_ctx, 1); + } + return true; + } + private boolean conditionalOrExpression_sempred(ConditionalOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return precpred(_ctx, 1); + } + return true; + } + private boolean conditionalAndExpression_sempred(ConditionalAndExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return precpred(_ctx, 1); + } + return true; + } + private boolean inclusiveOrExpression_sempred(InclusiveOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 1); + } + return true; + } + private boolean exclusiveOrExpression_sempred(ExclusiveOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 6: + return precpred(_ctx, 1); + } + return true; + } + private boolean andExpression_sempred(AndExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 7: + return precpred(_ctx, 1); + } + return true; + } + private boolean equalityExpression_sempred(EqualityExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 8: + return precpred(_ctx, 2); + case 9: + return precpred(_ctx, 1); + } + return true; + } + private boolean relationalExpression_sempred(RelationalExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 10: + return precpred(_ctx, 5); + case 11: + return precpred(_ctx, 4); + case 12: + return precpred(_ctx, 3); + case 13: + return precpred(_ctx, 2); + case 14: + return precpred(_ctx, 1); + } + return true; + } + private boolean shiftExpression_sempred(ShiftExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 15: + return precpred(_ctx, 3); + case 16: + return precpred(_ctx, 2); + case 17: + return precpred(_ctx, 1); + } + return true; + } + private boolean additiveExpression_sempred(AdditiveExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 18: + return precpred(_ctx, 2); + case 19: + return precpred(_ctx, 1); + } + return true; + } + private boolean multiplicativeExpression_sempred(MultiplicativeExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 20: + return precpred(_ctx, 3); + case 21: + return precpred(_ctx, 2); + case 22: + return precpred(_ctx, 1); + } + return true; + } + + private static final int _serializedATNSegments = 2; + private static final String _serializedATNSegment0 = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3n\u0b34\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\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ + "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ + "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0"+ + "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4"+ + "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9"+ + "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad"+ + "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2"+ + "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6"+ + "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb"+ + "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf"+ + "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4"+ + "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8"+ + "\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd"+ + "\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1\t\u00d1"+ + "\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5\4\u00d6"+ + "\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da"+ + "\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df"+ + "\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3\t\u00e3"+ + "\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8"+ + "\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec"+ + "\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\3\2\3\2\3\3\3\3\5\3\u01e3"+ + "\n\3\3\4\7\4\u01e6\n\4\f\4\16\4\u01e9\13\4\3\4\3\4\7\4\u01ed\n\4\f\4\16"+ + "\4\u01f0\13\4\3\4\5\4\u01f3\n\4\3\5\3\5\5\5\u01f7\n\5\3\6\3\6\3\7\3\7"+ + "\3\b\3\b\3\b\5\b\u0200\n\b\3\t\3\t\5\t\u0204\n\t\3\t\7\t\u0207\n\t\f\t"+ + "\16\t\u020a\13\t\3\n\7\n\u020d\n\n\f\n\16\n\u0210\13\n\3\n\3\n\5\n\u0214"+ + "\n\n\3\n\3\n\3\n\7\n\u0219\n\n\f\n\16\n\u021c\13\n\3\n\3\n\5\n\u0220\n"+ + "\n\5\n\u0222\n\n\3\13\3\13\7\13\u0226\n\13\f\13\16\13\u0229\13\13\3\13"+ + "\3\13\5\13\u022d\n\13\3\f\7\f\u0230\n\f\f\f\16\f\u0233\13\f\3\f\3\f\5"+ + "\f\u0237\n\f\3\r\3\r\3\16\3\16\3\17\3\17\3\20\7\20\u0240\n\20\f\20\16"+ + "\20\u0243\13\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+ + "\5\21\u0250\n\21\3\22\7\22\u0253\n\22\f\22\16\22\u0256\13\22\3\22\3\22"+ + "\3\22\7\22\u025b\n\22\f\22\16\22\u025e\13\22\3\22\3\22\7\22\u0262\n\22"+ + "\f\22\16\22\u0265\13\22\3\23\7\23\u0268\n\23\f\23\16\23\u026b\13\23\3"+ + "\23\3\23\5\23\u026f\n\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\7\25\u0278"+ + "\n\25\f\25\16\25\u027b\13\25\5\25\u027d\n\25\3\26\3\26\3\26\3\27\3\27"+ + "\3\27\3\27\3\30\3\30\3\30\7\30\u0289\n\30\f\30\16\30\u028c\13\30\3\31"+ + "\3\31\5\31\u0290\n\31\3\32\7\32\u0293\n\32\f\32\16\32\u0296\13\32\3\32"+ + "\3\32\5\32\u029a\n\32\3\33\3\33\3\33\3\33\5\33\u02a0\n\33\3\34\3\34\3"+ + "\34\3\34\3\34\3\34\7\34\u02a8\n\34\f\34\16\34\u02ab\13\34\3\35\3\35\3"+ + "\35\3\35\3\35\5\35\u02b2\n\35\3\36\3\36\3\36\3\36\3\36\3\36\7\36\u02ba"+ + "\n\36\f\36\16\36\u02bd\13\36\3\37\3\37\3\37\3\37\3\37\5\37\u02c4\n\37"+ + "\3 \3 \3!\3!\3!\3!\3!\3!\7!\u02ce\n!\f!\16!\u02d1\13!\3\"\5\"\u02d4\n"+ + "\"\3\"\7\"\u02d7\n\"\f\"\16\"\u02da\13\"\3\"\7\"\u02dd\n\"\f\"\16\"\u02e0"+ + "\13\"\3\"\3\"\3#\7#\u02e5\n#\f#\16#\u02e8\13#\3#\3#\3#\3#\7#\u02ee\n#"+ + "\f#\16#\u02f1\13#\3#\3#\3$\3$\3%\3%\3%\3%\5%\u02fb\n%\3&\3&\3&\3&\3\'"+ + "\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3*\3*\3"+ + "*\5*\u0318\n*\3+\3+\5+\u031c\n+\3,\7,\u031f\n,\f,\16,\u0322\13,\3,\3,"+ + "\3,\5,\u0327\n,\3,\5,\u032a\n,\3,\5,\u032d\n,\3,\3,\3-\3-\3-\3-\3-\3-"+ + "\3-\3-\5-\u0339\n-\3.\3.\3.\3.\3/\3/\3/\7/\u0342\n/\f/\16/\u0345\13/\3"+ + "\60\3\60\3\60\3\61\3\61\3\61\3\62\3\62\3\62\7\62\u0350\n\62\f\62\16\62"+ + "\u0353\13\62\3\63\3\63\7\63\u0357\n\63\f\63\16\63\u035a\13\63\3\63\3\63"+ + "\3\64\3\64\3\64\5\64\u0361\n\64\3\65\3\65\3\65\3\65\3\65\5\65\u0368\n"+ + "\65\3\66\7\66\u036b\n\66\f\66\16\66\u036e\13\66\3\66\5\66\u0371\n\66\3"+ + "\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\5\67\u037e\n\67"+ + "\38\38\38\78\u0383\n8\f8\168\u0386\138\39\39\39\59\u038b\n9\3:\3:\5:\u038f"+ + "\n:\3;\3;\5;\u0393\n;\3<\3<\5<\u0397\n<\3=\3=\5=\u039b\n=\3>\3>\3>\5>"+ + "\u03a0\n>\3?\3?\5?\u03a4\n?\3?\3?\7?\u03a8\n?\f?\16?\u03ab\13?\3@\3@\5"+ + "@\u03af\n@\3@\3@\3@\7@\u03b4\n@\f@\16@\u03b7\13@\3@\3@\5@\u03bb\n@\5@"+ + "\u03bd\n@\3A\3A\7A\u03c1\nA\fA\16A\u03c4\13A\3A\3A\5A\u03c8\nA\3B\3B\5"+ + "B\u03cc\nB\3C\3C\3D\3D\3E\3E\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\5G\u03df"+ + "\nG\3H\7H\u03e2\nH\fH\16H\u03e5\13H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3"+ + "I\3I\5I\u03f4\nI\3J\5J\u03f7\nJ\3J\3J\5J\u03fb\nJ\3J\3J\7J\u03ff\nJ\f"+ + "J\16J\u0402\13J\3J\5J\u0405\nJ\3J\3J\5J\u0409\nJ\5J\u040b\nJ\3K\3K\5K"+ + "\u040f\nK\3L\3L\3L\5L\u0414\nL\3L\3L\5L\u0418\nL\3M\3M\3M\3M\3M\5M\u041f"+ + "\nM\3N\3N\3N\7N\u0424\nN\fN\16N\u0427\13N\3N\3N\3N\7N\u042c\nN\fN\16N"+ + "\u042f\13N\5N\u0431\nN\3O\7O\u0434\nO\fO\16O\u0437\13O\3O\5O\u043a\nO"+ + "\3O\3O\3P\3P\5P\u0440\nP\3Q\7Q\u0443\nQ\fQ\16Q\u0446\13Q\3Q\3Q\7Q\u044a"+ + "\nQ\fQ\16Q\u044d\13Q\3Q\3Q\3Q\3Q\5Q\u0453\nQ\3R\7R\u0456\nR\fR\16R\u0459"+ + "\13R\3R\3R\3R\5R\u045e\nR\3R\3R\3S\3S\3S\3T\3T\3T\7T\u0468\nT\fT\16T\u046b"+ + "\13T\3U\3U\5U\u046f\nU\3V\3V\5V\u0473\nV\3W\3W\3X\3X\3X\3Y\7Y\u047b\n"+ + "Y\fY\16Y\u047e\13Y\3Y\3Y\5Y\u0482\nY\3Y\3Y\3Z\3Z\3Z\3Z\5Z\u048a\nZ\3["+ + "\5[\u048d\n[\3[\3[\3[\5[\u0492\n[\3[\3[\3\\\3\\\3]\3]\5]\u049a\n]\3]\5"+ + "]\u049d\n]\3]\3]\3^\5^\u04a2\n^\3^\3^\3^\5^\u04a7\n^\3^\3^\3^\5^\u04ac"+ + "\n^\3^\3^\3^\5^\u04b1\n^\3^\3^\3^\3^\3^\5^\u04b8\n^\3^\3^\3^\5^\u04bd"+ + "\n^\3^\3^\3^\3^\3^\3^\5^\u04c5\n^\3^\3^\3^\5^\u04ca\n^\3^\3^\3^\5^\u04cf"+ + "\n^\3_\7_\u04d2\n_\f_\16_\u04d5\13_\3_\3_\3_\5_\u04da\n_\3_\3_\3`\3`\5"+ + "`\u04e0\n`\3`\5`\u04e3\n`\3`\5`\u04e6\n`\3`\3`\3a\3a\3a\7a\u04ed\na\f"+ + "a\16a\u04f0\13a\3b\7b\u04f3\nb\fb\16b\u04f6\13b\3b\3b\3b\5b\u04fb\nb\3"+ + "b\5b\u04fe\nb\3b\5b\u0501\nb\3c\3c\3d\3d\7d\u0507\nd\fd\16d\u050a\13d"+ + "\3e\3e\5e\u050e\ne\3f\7f\u0511\nf\ff\16f\u0514\13f\3f\3f\3f\5f\u0519\n"+ + "f\3f\5f\u051c\nf\3f\3f\3g\3g\3g\3g\3g\3g\3g\5g\u0527\ng\3h\3h\3h\3i\3"+ + "i\7i\u052e\ni\fi\16i\u0531\13i\3i\3i\3j\3j\3j\3j\3j\5j\u053a\nj\3k\7k"+ + "\u053d\nk\fk\16k\u0540\13k\3k\3k\3k\3k\3l\3l\3l\3l\5l\u054a\nl\3m\7m\u054d"+ + "\nm\fm\16m\u0550\13m\3m\3m\3m\3n\3n\3n\3n\3n\3n\5n\u055b\nn\3o\7o\u055e"+ + "\no\fo\16o\u0561\13o\3o\3o\3o\3o\3o\3p\3p\7p\u056a\np\fp\16p\u056d\13"+ + "p\3p\3p\3q\3q\3q\3q\3q\5q\u0576\nq\3r\7r\u0579\nr\fr\16r\u057c\13r\3r"+ + "\3r\3r\3r\3r\5r\u0583\nr\3r\5r\u0586\nr\3r\3r\3s\3s\3s\5s\u058d\ns\3t"+ + "\3t\3t\3u\3u\3u\5u\u0595\nu\3v\3v\3v\3v\5v\u059b\nv\3v\3v\3w\3w\3w\7w"+ + "\u05a2\nw\fw\16w\u05a5\13w\3x\3x\3x\3x\3y\3y\3y\5y\u05ae\ny\3z\3z\5z\u05b2"+ + "\nz\3z\5z\u05b5\nz\3z\3z\3{\3{\3{\7{\u05bc\n{\f{\16{\u05bf\13{\3|\3|\3"+ + "|\3}\3}\3}\3}\3}\3}\3~\3~\5~\u05cc\n~\3~\5~\u05cf\n~\3~\3~\3\177\3\177"+ + "\3\177\7\177\u05d6\n\177\f\177\16\177\u05d9\13\177\3\u0080\3\u0080\5\u0080"+ + "\u05dd\n\u0080\3\u0080\3\u0080\3\u0081\3\u0081\7\u0081\u05e3\n\u0081\f"+ + "\u0081\16\u0081\u05e6\13\u0081\3\u0082\3\u0082\3\u0082\5\u0082\u05eb\n"+ + "\u0082\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\5\u0084\u05f2\n\u0084\3"+ + "\u0085\7\u0085\u05f5\n\u0085\f\u0085\16\u0085\u05f8\13\u0085\3\u0085\3"+ + "\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086"+ + "\u0603\n\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u060a\n"+ + "\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ + "\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0618\n\u0088\3\u0089\3\u0089"+ + "\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c"+ + "\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+ + "\5\u008d\u062e\n\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ + "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090"+ + "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091"+ + "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091"+ + "\u0650\n\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093"+ + "\3\u0093\7\u0093\u065a\n\u0093\f\u0093\16\u0093\u065d\13\u0093\3\u0093"+ + "\7\u0093\u0660\n\u0093\f\u0093\16\u0093\u0663\13\u0093\3\u0093\3\u0093"+ + "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\7\u0095\u066c\n\u0095\f\u0095"+ + "\16\u0095\u066f\13\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ + "\3\u0096\3\u0096\3\u0096\3\u0096\5\u0096\u067b\n\u0096\3\u0097\3\u0097"+ + "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099"+ + "\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a"+ + "\3\u009a\3\u009a\3\u009b\3\u009b\5\u009b\u0695\n\u009b\3\u009c\3\u009c"+ + "\5\u009c\u0699\n\u009c\3\u009d\3\u009d\3\u009d\5\u009d\u069e\n\u009d\3"+ + "\u009d\3\u009d\5\u009d\u06a2\n\u009d\3\u009d\3\u009d\5\u009d\u06a6\n\u009d"+ + "\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\5\u009e\u06ae\n\u009e"+ + "\3\u009e\3\u009e\5\u009e\u06b2\n\u009e\3\u009e\3\u009e\5\u009e\u06b6\n"+ + "\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\5\u009f\u06bd\n\u009f\3"+ + "\u00a0\3\u00a0\3\u00a1\3\u00a1\3\u00a1\7\u00a1\u06c4\n\u00a1\f\u00a1\16"+ + "\u00a1\u06c7\13\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u06cc\n\u00a2\f"+ + "\u00a2\16\u00a2\u06cf\13\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2"+ + "\3\u00a2\3\u00a2\3\u00a3\3\u00a3\3\u00a3\7\u00a3\u06db\n\u00a3\f\u00a3"+ + "\16\u00a3\u06de\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a4\3\u00a4\5\u00a4\u06e9\n\u00a4\3\u00a4\3\u00a4\3\u00a5"+ + "\3\u00a5\5\u00a5\u06ef\n\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6"+ + "\u06f5\n\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8"+ + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\3\u00a9\3\u00a9\3\u00a9\5\u00a9\u070a\n\u00a9\3\u00a9\3\u00a9\3\u00a9"+ + "\5\u00a9\u070f\n\u00a9\3\u00aa\3\u00aa\7\u00aa\u0713\n\u00aa\f\u00aa\16"+ + "\u00aa\u0716\13\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ + "\3\u00ac\7\u00ac\u071f\n\u00ac\f\u00ac\16\u00ac\u0722\13\u00ac\3\u00ac"+ + "\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\7\u00ad\u072a\n\u00ad\f\u00ad"+ + "\16\u00ad\u072d\13\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af"+ + "\3\u00af\5\u00af\u0736\n\u00af\3\u00af\5\u00af\u0739\n\u00af\3\u00b0\3"+ + "\u00b0\3\u00b0\5\u00b0\u073e\n\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3"+ + "\u00b1\7\u00b1\u0745\n\u00b1\f\u00b1\16\u00b1\u0748\13\u00b1\3\u00b2\7"+ + "\u00b2\u074b\n\u00b2\f\u00b2\16\u00b2\u074e\13\u00b2\3\u00b2\3\u00b2\3"+ + "\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\5\u00b3\u0757\n\u00b3\3\u00b3\7"+ + "\u00b3\u075a\n\u00b3\f\u00b3\16\u00b3\u075d\13\u00b3\3\u00b4\3\u00b4\3"+ + "\u00b4\3\u00b4\7\u00b4\u0763\n\u00b4\f\u00b4\16\u00b4\u0766\13\u00b4\3"+ + "\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\5\u00b4\u077c\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\7\u00b6\u0784\n\u00b6\f\u00b6\16\u00b6\u0787\13\u00b6"+ + "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\5\u00b6\u079c\n\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+ + "\5\u00b7\u07a3\n\u00b7\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\5\u00b9\u07ab\n\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\7\u00ba\u07b1\n"+ + "\u00ba\f\u00ba\16\u00ba\u07b4\13\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\7\u00ba\u07bc\n\u00ba\f\u00ba\16\u00ba\u07bf\13\u00ba"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\5\u00ba\u07d5\n\u00ba\3\u00bb\3\u00bb\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\7\u00bc\u07dd\n\u00bc\f\u00bc\16\u00bc\u07e0\13\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc\u07e8\n\u00bc"+ + "\f\u00bc\16\u00bc\u07eb\13\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u0800\n\u00bc\3\u00bd"+ + "\3\u00bd\5\u00bd\u0804\n\u00bd\3\u00bd\7\u00bd\u0807\n\u00bd\f\u00bd\16"+ + "\u00bd\u080a\13\u00bd\3\u00bd\3\u00bd\3\u00bd\7\u00bd\u080f\n\u00bd\f"+ + "\u00bd\16\u00bd\u0812\13\u00bd\3\u00bd\7\u00bd\u0815\n\u00bd\f\u00bd\16"+ + "\u00bd\u0818\13\u00bd\3\u00bd\5\u00bd\u081b\n\u00bd\3\u00bd\3\u00bd\5"+ + "\u00bd\u081f\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0823\n\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\3\u00bd\5\u00bd\u0829\n\u00bd\3\u00bd\7\u00bd\u082c\n\u00bd\f"+ + "\u00bd\16\u00bd\u082f\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u0833\n\u00bd\3"+ + "\u00bd\3\u00bd\5\u00bd\u0837\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u083b\n\u00bd"+ + "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\5\u00bd\u0841\n\u00bd\3\u00bd\7\u00bd"+ + "\u0844\n\u00bd\f\u00bd\16\u00bd\u0847\13\u00bd\3\u00bd\3\u00bd\5\u00bd"+ + "\u084b\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u084f\n\u00bd\3\u00bd\3\u00bd\5"+ + "\u00bd\u0853\n\u00bd\5\u00bd\u0855\n\u00bd\3\u00be\3\u00be\3\u00be\5\u00be"+ + "\u085a\n\u00be\3\u00be\7\u00be\u085d\n\u00be\f\u00be\16\u00be\u0860\13"+ + "\u00be\3\u00be\3\u00be\5\u00be\u0864\n\u00be\3\u00be\3\u00be\5\u00be\u0868"+ + "\n\u00be\3\u00be\3\u00be\5\u00be\u086c\n\u00be\3\u00bf\3\u00bf\5\u00bf"+ + "\u0870\n\u00bf\3\u00bf\7\u00bf\u0873\n\u00bf\f\u00bf\16\u00bf\u0876\13"+ + "\u00bf\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u087b\n\u00bf\f\u00bf\16\u00bf"+ + "\u087e\13\u00bf\3\u00bf\7\u00bf\u0881\n\u00bf\f\u00bf\16\u00bf\u0884\13"+ + "\u00bf\3\u00bf\5\u00bf\u0887\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u088b\n\u00bf"+ + "\3\u00bf\3\u00bf\5\u00bf\u088f\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\5\u00bf\u0895\n\u00bf\3\u00bf\7\u00bf\u0898\n\u00bf\f\u00bf\16\u00bf"+ + "\u089b\13\u00bf\3\u00bf\3\u00bf\5\u00bf\u089f\n\u00bf\3\u00bf\3\u00bf"+ + "\5\u00bf\u08a3\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a7\n\u00bf\5\u00bf\u08a9"+ + "\n\u00bf\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08ae\n\u00c0\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\5\u00c1\u08bd\n\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3"+ + "\u08cb\n\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\3\u00c4\5\u00c4\u08d7\n\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\7\u00c4\u08de\n\u00c4\f\u00c4\16\u00c4\u08e1\13\u00c4"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\7\u00c5\u08ed\n\u00c5\f\u00c5\16\u00c5\u08f0\13\u00c5\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\5\u00c6\u08fc\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6"+ + "\u0903\n\u00c6\f\u00c6\16\u00c6\u0906\13\u00c6\3\u00c7\3\u00c7\3\u00c7"+ + "\5\u00c7\u090b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7"+ + "\u0912\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0917\n\u00c7\3\u00c7\3"+ + "\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u091e\n\u00c7\3\u00c7\3\u00c7\3"+ + "\u00c7\5\u00c7\u0923\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5"+ + "\u00c7\u092a\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u092f\n\u00c7\3\u00c7"+ + "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0936\n\u00c7\3\u00c7\3\u00c7"+ + "\3\u00c7\5\u00c7\u093b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ + "\3\u00c7\5\u00c7\u0943\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0948\n"+ + "\u00c7\3\u00c7\3\u00c7\5\u00c7\u094c\n\u00c7\3\u00c8\3\u00c8\5\u00c8\u0950"+ + "\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0955\n\u00c8\3\u00c8\3\u00c8"+ + "\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u095c\n\u00c9\3\u00c9\3\u00c9\3\u00c9"+ + "\3\u00c9\3\u00c9\5\u00c9\u0963\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9"+ + "\u0968\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u096f\n"+ + "\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0974\n\u00c9\3\u00c9\3\u00c9\3"+ + "\u00c9\3\u00c9\3\u00c9\5\u00c9\u097b\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ + "\u00c9\u0980\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ + "\u00c9\u0988\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u098d\n\u00c9\3\u00c9"+ + "\3\u00c9\5\u00c9\u0991\n\u00c9\3\u00ca\3\u00ca\3\u00ca\7\u00ca\u0996\n"+ + "\u00ca\f\u00ca\16\u00ca\u0999\13\u00ca\3\u00cb\3\u00cb\3\u00cb\5\u00cb"+ + "\u099e\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09a5\n"+ + "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ac\n\u00cb\3"+ + "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09b3\n\u00cb\3\u00cb\3"+ + "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09bb\n\u00cb\3\u00cb\3"+ + "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09c2\n\u00cb\3\u00cb\3\u00cb\3"+ + "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ca\n\u00cb\3\u00cc\3\u00cc\5"+ + "\u00cc\u09ce\n\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09d5"+ + "\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09dc\n\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09e3\n\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09eb\n\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09f2\n\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09fa\n\u00cd\3\u00ce\3\u00ce"+ + "\3\u00ce\3\u00ce\5\u00ce\u0a00\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\5\u00ce\u0a06\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ + "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce\u0a12\n\u00ce\3\u00cf\3\u00cf"+ + "\7\u00cf\u0a16\n\u00cf\f\u00cf\16\u00cf\u0a19\13\u00cf\3\u00d0\7\u00d0"+ + "\u0a1c\n\u00d0\f\u00d0\16\u00d0\u0a1f\13\u00d0\3\u00d0\3\u00d0\3\u00d0"+ + "\3\u00d0\3\u00d1\3\u00d1\3\u00d2\3\u00d2\5\u00d2\u0a29\n\u00d2\3\u00d3"+ + "\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u0a32\n\u00d4"+ + "\3\u00d4\5\u00d4\u0a35\n\u00d4\3\u00d5\3\u00d5\3\u00d5\7\u00d5\u0a3a\n"+ + "\u00d5\f\u00d5\16\u00d5\u0a3d\13\u00d5\3\u00d6\3\u00d6\5\u00d6\u0a41\n"+ + "\u00d6\3\u00d7\3\u00d7\5\u00d7\u0a45\n\u00d7\3\u00d8\3\u00d8\3\u00d8\3"+ + "\u00d8\3\u00d9\3\u00d9\3\u00d9\5\u00d9\u0a4e\n\u00d9\3\u00da\3\u00da\3"+ + "\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u0a59\n"+ + "\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\7\u00dc\u0a61\n"+ + "\u00dc\f\u00dc\16\u00dc\u0a64\13\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd"+ + "\3\u00dd\3\u00dd\7\u00dd\u0a6c\n\u00dd\f\u00dd\16\u00dd\u0a6f\13\u00dd"+ + "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\7\u00de\u0a77\n\u00de"+ + "\f\u00de\16\u00de\u0a7a\13\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df"+ + "\3\u00df\7\u00df\u0a82\n\u00df\f\u00df\16\u00df\u0a85\13\u00df\3\u00e0"+ + "\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\7\u00e0\u0a8d\n\u00e0\f\u00e0"+ + "\16\u00e0\u0a90\13\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ + "\3\u00e1\3\u00e1\3\u00e1\7\u00e1\u0a9b\n\u00e1\f\u00e1\16\u00e1\u0a9e"+ + "\13\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e2\7\u00e2\u0ab2\n\u00e2\f\u00e2\16\u00e2\u0ab5\13\u00e2\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3\u0ac7\n\u00e3"+ + "\f\u00e3\16\u00e3\u0aca\13\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ + "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u0ad5\n\u00e4\f\u00e4\16\u00e4"+ + "\u0ad8\13\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ + "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\7\u00e5\u0ae6\n\u00e5\f\u00e5"+ + "\16\u00e5\u0ae9\13\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ + "\3\u00e6\5\u00e6\u0af2\n\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8"+ + "\3\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\5\u00e9\u0b00"+ + "\n\u00e9\3\u00ea\3\u00ea\5\u00ea\u0b04\n\u00ea\3\u00ea\3\u00ea\7\u00ea"+ + "\u0b08\n\u00ea\f\u00ea\16\u00ea\u0b0b\13\u00ea\3\u00eb\3\u00eb\3\u00eb"+ + "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\7\u00ef\u0b1f\n\u00ef"+ + "\f\u00ef\16\u00ef\u0b22\13\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ + "\3\u00ef\7\u00ef\u0b2a\n\u00ef\f\u00ef\16\u00ef\u0b2d\13\u00ef\3\u00ef"+ + "\3\u00ef\3\u00ef\5\u00ef\u0b32\n\u00ef\3\u00ef\2\17\66:@\u01b6\u01b8\u01ba"+ + "\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u00f0\2\4\6\b\n\f\16\20\22"+ + "\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnp"+ + "rtvxz|~\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\u00d8\u00da\u00dc"+ + "\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4"+ + "\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c"+ + "\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124"+ + "\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c"+ + "\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154"+ + "\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c"+ + "\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184"+ + "\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c"+ + "\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4"+ + "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc"+ + "\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\2\6\3\2\66;\7\2\b\b\13"+ + "\13\36\36 ((\4\2\21\21\27\27\4\2EE^h\2\u0c26\2\u01de\3\2\2\2\4\u01e2"+ + "\3\2\2\2\6\u01f2\3\2\2\2\b\u01f6\3\2\2\2\n\u01f8\3\2\2\2\f\u01fa\3\2\2"+ + "\2\16\u01ff\3\2\2\2\20\u0203\3\2\2\2\22\u0221\3\2\2\2\24\u0223\3\2\2\2"+ + "\26\u0231\3\2\2\2\30\u0238\3\2\2\2\32\u023a\3\2\2\2\34\u023c\3\2\2\2\36"+ + "\u0241\3\2\2\2 \u024f\3\2\2\2\"\u0254\3\2\2\2$\u0269\3\2\2\2&\u0270\3"+ + "\2\2\2(\u027c\3\2\2\2*\u027e\3\2\2\2,\u0281\3\2\2\2.\u0285\3\2\2\2\60"+ + "\u028f\3\2\2\2\62\u0294\3\2\2\2\64\u029f\3\2\2\2\66\u02a1\3\2\2\28\u02b1"+ + "\3\2\2\2:\u02b3\3\2\2\2<\u02c3\3\2\2\2>\u02c5\3\2\2\2@\u02c7\3\2\2\2B"+ + "\u02d3\3\2\2\2D\u02e6\3\2\2\2F\u02f4\3\2\2\2H\u02fa\3\2\2\2J\u02fc\3\2"+ + "\2\2L\u0300\3\2\2\2N\u0306\3\2\2\2P\u030d\3\2\2\2R\u0317\3\2\2\2T\u031b"+ + "\3\2\2\2V\u0320\3\2\2\2X\u0338\3\2\2\2Z\u033a\3\2\2\2\\\u033e\3\2\2\2"+ + "^\u0346\3\2\2\2`\u0349\3\2\2\2b\u034c\3\2\2\2d\u0354\3\2\2\2f\u0360\3"+ + "\2\2\2h\u0367\3\2\2\2j\u036c\3\2\2\2l\u037d\3\2\2\2n\u037f\3\2\2\2p\u0387"+ + "\3\2\2\2r\u038c\3\2\2\2t\u0392\3\2\2\2v\u0396\3\2\2\2x\u039a\3\2\2\2z"+ + "\u039f\3\2\2\2|\u03a3\3\2\2\2~\u03bc\3\2\2\2\u0080\u03be\3\2\2\2\u0082"+ + "\u03c9\3\2\2\2\u0084\u03cd\3\2\2\2\u0086\u03cf\3\2\2\2\u0088\u03d1\3\2"+ + "\2\2\u008a\u03d3\3\2\2\2\u008c\u03de\3\2\2\2\u008e\u03e3\3\2\2\2\u0090"+ + "\u03f3\3\2\2\2\u0092\u040a\3\2\2\2\u0094\u040e\3\2\2\2\u0096\u0410\3\2"+ + "\2\2\u0098\u041e\3\2\2\2\u009a\u0430\3\2\2\2\u009c\u0435\3\2\2\2\u009e"+ + "\u043f\3\2\2\2\u00a0\u0452\3\2\2\2\u00a2\u0457\3\2\2\2\u00a4\u0461\3\2"+ + "\2\2\u00a6\u0464\3\2\2\2\u00a8\u046e\3\2\2\2\u00aa\u0472\3\2\2\2\u00ac"+ + "\u0474\3\2\2\2\u00ae\u0476\3\2\2\2\u00b0\u047c\3\2\2\2\u00b2\u0489\3\2"+ + "\2\2\u00b4\u048c\3\2\2\2\u00b6\u0495\3\2\2\2\u00b8\u0497\3\2\2\2\u00ba"+ + "\u04ce\3\2\2\2\u00bc\u04d3\3\2\2\2\u00be\u04dd\3\2\2\2\u00c0\u04e9\3\2"+ + "\2\2\u00c2\u04f4\3\2\2\2\u00c4\u0502\3\2\2\2\u00c6\u0504\3\2\2\2\u00c8"+ + "\u050d\3\2\2\2\u00ca\u0512\3\2\2\2\u00cc\u0526\3\2\2\2\u00ce\u0528\3\2"+ + "\2\2\u00d0\u052b\3\2\2\2\u00d2\u0539\3\2\2\2\u00d4\u053e\3\2\2\2\u00d6"+ + "\u0549\3\2\2\2\u00d8\u054e\3\2\2\2\u00da\u055a\3\2\2\2\u00dc\u055f\3\2"+ + "\2\2\u00de\u0567\3\2\2\2\u00e0\u0575\3\2\2\2\u00e2\u057a\3\2\2\2\u00e4"+ + "\u058c\3\2\2\2\u00e6\u058e\3\2\2\2\u00e8\u0594\3\2\2\2\u00ea\u0596\3\2"+ + "\2\2\u00ec\u059e\3\2\2\2\u00ee\u05a6\3\2\2\2\u00f0\u05ad\3\2\2\2\u00f2"+ + "\u05af\3\2\2\2\u00f4\u05b8\3\2\2\2\u00f6\u05c0\3\2\2\2\u00f8\u05c3\3\2"+ + "\2\2\u00fa\u05c9\3\2\2\2\u00fc\u05d2\3\2\2\2\u00fe\u05da\3\2\2\2\u0100"+ + "\u05e0\3\2\2\2\u0102\u05ea\3\2\2\2\u0104\u05ec\3\2\2\2\u0106\u05f1\3\2"+ + "\2\2\u0108\u05f6\3\2\2\2\u010a\u0602\3\2\2\2\u010c\u0609\3\2\2\2\u010e"+ + "\u0617\3\2\2\2\u0110\u0619\3\2\2\2\u0112\u061b\3\2\2\2\u0114\u061f\3\2"+ + "\2\2\u0116\u0623\3\2\2\2\u0118\u062d\3\2\2\2\u011a\u062f\3\2\2\2\u011c"+ + "\u0635\3\2\2\2\u011e\u063d\3\2\2\2\u0120\u064f\3\2\2\2\u0122\u0651\3\2"+ + "\2\2\u0124\u0657\3\2\2\2\u0126\u0666\3\2\2\2\u0128\u0669\3\2\2\2\u012a"+ + "\u067a\3\2\2\2\u012c\u067c\3\2\2\2\u012e\u067e\3\2\2\2\u0130\u0684\3\2"+ + "\2\2\u0132\u068a\3\2\2\2\u0134\u0694\3\2\2\2\u0136\u0698\3\2\2\2\u0138"+ + "\u069a\3\2\2\2\u013a\u06aa\3\2\2\2\u013c\u06bc\3\2\2\2\u013e\u06be\3\2"+ + "\2\2\u0140\u06c0\3\2\2\2\u0142\u06c8\3\2\2\2\u0144\u06d7\3\2\2\2\u0146"+ + "\u06e6\3\2\2\2\u0148\u06ec\3\2\2\2\u014a\u06f2\3\2\2\2\u014c\u06f8\3\2"+ + "\2\2\u014e\u06fc\3\2\2\2\u0150\u070e\3\2\2\2\u0152\u0710\3\2\2\2\u0154"+ + "\u0717\3\2\2\2\u0156\u0720\3\2\2\2\u0158\u0726\3\2\2\2\u015a\u072e\3\2"+ + "\2\2\u015c\u0731\3\2\2\2\u015e\u073a\3\2\2\2\u0160\u0741\3\2\2\2\u0162"+ + "\u074c\3\2\2\2\u0164\u0756\3\2\2\2\u0166\u077b\3\2\2\2\u0168\u077d\3\2"+ + "\2\2\u016a\u079b\3\2\2\2\u016c\u07a2\3\2\2\2\u016e\u07a4\3\2\2\2\u0170"+ + "\u07aa\3\2\2\2\u0172\u07d4\3\2\2\2\u0174\u07d6\3\2\2\2\u0176\u07ff\3\2"+ + "\2\2\u0178\u0854\3\2\2\2\u017a\u0856\3\2\2\2\u017c\u08a8\3\2\2\2\u017e"+ + "\u08ad\3\2\2\2\u0180\u08bc\3\2\2\2\u0182\u08be\3\2\2\2\u0184\u08ca\3\2"+ + "\2\2\u0186\u08d6\3\2\2\2\u0188\u08e2\3\2\2\2\u018a\u08fb\3\2\2\2\u018c"+ + "\u094b\3\2\2\2\u018e\u094d\3\2\2\2\u0190\u0990\3\2\2\2\u0192\u0992\3\2"+ + "\2\2\u0194\u09c9\3\2\2\2\u0196\u09cb\3\2\2\2\u0198\u09f9\3\2\2\2\u019a"+ + "\u0a11\3\2\2\2\u019c\u0a13\3\2\2\2\u019e\u0a1d\3\2\2\2\u01a0\u0a24\3\2"+ + "\2\2\u01a2\u0a28\3\2\2\2\u01a4\u0a2a\3\2\2\2\u01a6\u0a34\3\2\2\2\u01a8"+ + "\u0a36\3\2\2\2\u01aa\u0a40\3\2\2\2\u01ac\u0a44\3\2\2\2\u01ae\u0a46\3\2"+ + "\2\2\u01b0\u0a4d\3\2\2\2\u01b2\u0a4f\3\2\2\2\u01b4\u0a58\3\2\2\2\u01b6"+ + "\u0a5a\3\2\2\2\u01b8\u0a65\3\2\2\2\u01ba\u0a70\3\2\2\2\u01bc\u0a7b\3\2"+ + "\2\2\u01be\u0a86\3\2\2\2\u01c0\u0a91\3\2\2\2\u01c2\u0a9f\3\2\2\2\u01c4"+ + "\u0ab6\3\2\2\2\u01c6\u0acb\3\2\2\2\u01c8\u0ad9\3\2\2\2\u01ca\u0af1\3\2"+ + "\2\2\u01cc\u0af3\3\2\2\2\u01ce\u0af6\3\2\2\2\u01d0\u0aff\3\2\2\2\u01d2"+ + "\u0b03\3\2\2\2\u01d4\u0b0c\3\2\2\2\u01d6\u0b0f\3\2\2\2\u01d8\u0b11\3\2"+ + "\2\2\u01da\u0b14\3\2\2\2\u01dc\u0b31\3\2\2\2\u01de\u01df\t\2\2\2\u01df"+ + "\3\3\2\2\2\u01e0\u01e3\5\6\4\2\u01e1\u01e3\5\16\b\2\u01e2\u01e0\3\2\2"+ + "\2\u01e2\u01e1\3\2\2\2\u01e3\5\3\2\2\2\u01e4\u01e6\5\u00e8u\2\u01e5\u01e4"+ + "\3\2\2\2\u01e6\u01e9\3\2\2\2\u01e7\u01e5\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8"+ + "\u01ea\3\2\2\2\u01e9\u01e7\3\2\2\2\u01ea\u01f3\5\b\5\2\u01eb\u01ed\5\u00e8"+ + "u\2\u01ec\u01eb\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee"+ + "\u01ef\3\2\2\2\u01ef\u01f1\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f3\7\6"+ + "\2\2\u01f2\u01e7\3\2\2\2\u01f2\u01ee\3\2\2\2\u01f3\7\3\2\2\2\u01f4\u01f7"+ + "\5\n\6\2\u01f5\u01f7\5\f\7\2\u01f6\u01f4\3\2\2\2\u01f6\u01f5\3\2\2\2\u01f7"+ + "\t\3\2\2\2\u01f8\u01f9\t\3\2\2\u01f9\13\3\2\2\2\u01fa\u01fb\t\4\2\2\u01fb"+ + "\r\3\2\2\2\u01fc\u0200\5\20\t\2\u01fd\u0200\5\36\20\2\u01fe\u0200\5 \21"+ + "\2\u01ff\u01fc\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff\u01fe\3\2\2\2\u0200\17"+ + "\3\2\2\2\u0201\u0204\5\26\f\2\u0202\u0204\5\34\17\2\u0203\u0201\3\2\2"+ + "\2\u0203\u0202\3\2\2\2\u0204\u0208\3\2\2\2\u0205\u0207\5\24\13\2\u0206"+ + "\u0205\3\2\2\2\u0207\u020a\3\2\2\2\u0208\u0206\3\2\2\2\u0208\u0209\3\2"+ + "\2\2\u0209\21\3\2\2\2\u020a\u0208\3\2\2\2\u020b\u020d\5\u00e8u\2\u020c"+ + "\u020b\3\2\2\2\u020d\u0210\3\2\2\2\u020e\u020c\3\2\2\2\u020e\u020f\3\2"+ + "\2\2\u020f\u0211\3\2\2\2\u0210\u020e\3\2\2\2\u0211\u0213\7i\2\2\u0212"+ + "\u0214\5,\27\2\u0213\u0212\3\2\2\2\u0213\u0214\3\2\2\2\u0214\u0222\3\2"+ + "\2\2\u0215\u0216\5\20\t\2\u0216\u021a\7D\2\2\u0217\u0219\5\u00e8u\2\u0218"+ + "\u0217\3\2\2\2\u0219\u021c\3\2\2\2\u021a\u0218\3\2\2\2\u021a\u021b\3\2"+ + "\2\2\u021b\u021d\3\2\2\2\u021c\u021a\3\2\2\2\u021d\u021f\7i\2\2\u021e"+ + "\u0220\5,\27\2\u021f\u021e\3\2\2\2\u021f\u0220\3\2\2\2\u0220\u0222\3\2"+ + "\2\2\u0221\u020e\3\2\2\2\u0221\u0215\3\2\2\2\u0222\23\3\2\2\2\u0223\u0227"+ + "\7D\2\2\u0224\u0226\5\u00e8u\2\u0225\u0224\3\2\2\2\u0226\u0229\3\2\2\2"+ + "\u0227\u0225\3\2\2\2\u0227\u0228\3\2\2\2\u0228\u022a\3\2\2\2\u0229\u0227"+ + "\3\2\2\2\u022a\u022c\7i\2\2\u022b\u022d\5,\27\2\u022c\u022b\3\2\2\2\u022c"+ + "\u022d\3\2\2\2\u022d\25\3\2\2\2\u022e\u0230\5\u00e8u\2\u022f\u022e\3\2"+ + "\2\2\u0230\u0233\3\2\2\2\u0231\u022f\3\2\2\2\u0231\u0232\3\2\2\2\u0232"+ + "\u0234\3\2\2\2\u0233\u0231\3\2\2\2\u0234\u0236\7i\2\2\u0235\u0237\5,\27"+ + "\2\u0236\u0235\3\2\2\2\u0236\u0237\3\2\2\2\u0237\27\3\2\2\2\u0238\u0239"+ + "\5\22\n\2\u0239\31\3\2\2\2\u023a\u023b\5\24\13\2\u023b\33\3\2\2\2\u023c"+ + "\u023d\5\26\f\2\u023d\35\3\2\2\2\u023e\u0240\5\u00e8u\2\u023f\u023e\3"+ + "\2\2\2\u0240\u0243\3\2\2\2\u0241\u023f\3\2\2\2\u0241\u0242\3\2\2\2\u0242"+ + "\u0244\3\2\2\2\u0243\u0241\3\2\2\2\u0244\u0245\7i\2\2\u0245\37\3\2\2\2"+ + "\u0246\u0247\5\6\4\2\u0247\u0248\5\"\22\2\u0248\u0250\3\2\2\2\u0249\u024a"+ + "\5\20\t\2\u024a\u024b\5\"\22\2\u024b\u0250\3\2\2\2\u024c\u024d\5\36\20"+ + "\2\u024d\u024e\5\"\22\2\u024e\u0250\3\2\2\2\u024f\u0246\3\2\2\2\u024f"+ + "\u0249\3\2\2\2\u024f\u024c\3\2\2\2\u0250!\3\2\2\2\u0251\u0253\5\u00e8"+ + "u\2\u0252\u0251\3\2\2\2\u0253\u0256\3\2\2\2\u0254\u0252\3\2\2\2\u0254"+ + "\u0255\3\2\2\2\u0255\u0257\3\2\2\2\u0256\u0254\3\2\2\2\u0257\u0258\7@"+ + "\2\2\u0258\u0263\7A\2\2\u0259\u025b\5\u00e8u\2\u025a\u0259\3\2\2\2\u025b"+ + "\u025e\3\2\2\2\u025c\u025a\3\2\2\2\u025c\u025d\3\2\2\2\u025d\u025f\3\2"+ + "\2\2\u025e\u025c\3\2\2\2\u025f\u0260\7@\2\2\u0260\u0262\7A\2\2\u0261\u025c"+ + "\3\2\2\2\u0262\u0265\3\2\2\2\u0263\u0261\3\2\2\2\u0263\u0264\3\2\2\2\u0264"+ + "#\3\2\2\2\u0265\u0263\3\2\2\2\u0266\u0268\5&\24\2\u0267\u0266\3\2\2\2"+ + "\u0268\u026b\3\2\2\2\u0269\u0267\3\2\2\2\u0269\u026a\3\2\2\2\u026a\u026c"+ + "\3\2\2\2\u026b\u0269\3\2\2\2\u026c\u026e\7i\2\2\u026d\u026f\5(\25\2\u026e"+ + "\u026d\3\2\2\2\u026e\u026f\3\2\2\2\u026f%\3\2\2\2\u0270\u0271\5\u00e8"+ + "u\2\u0271\'\3\2\2\2\u0272\u0273\7\24\2\2\u0273\u027d\5\36\20\2\u0274\u0275"+ + "\7\24\2\2\u0275\u0279\5\20\t\2\u0276\u0278\5*\26\2\u0277\u0276\3\2\2\2"+ + "\u0278\u027b\3\2\2\2\u0279\u0277\3\2\2\2\u0279\u027a\3\2\2\2\u027a\u027d"+ + "\3\2\2\2\u027b\u0279\3\2\2\2\u027c\u0272\3\2\2\2\u027c\u0274\3\2\2\2\u027d"+ + ")\3\2\2\2\u027e\u027f\7X\2\2\u027f\u0280\5\30\r\2\u0280+\3\2\2\2\u0281"+ + "\u0282\7G\2\2\u0282\u0283\5.\30\2\u0283\u0284\7F\2\2\u0284-\3\2\2\2\u0285"+ + "\u028a\5\60\31\2\u0286\u0287\7C\2\2\u0287\u0289\5\60\31\2\u0288\u0286"+ + "\3\2\2\2\u0289\u028c\3\2\2\2\u028a\u0288\3\2\2\2\u028a\u028b\3\2\2\2\u028b"+ + "/\3\2\2\2\u028c\u028a\3\2\2\2\u028d\u0290\5\16\b\2\u028e\u0290\5\62\32"+ + "\2\u028f\u028d\3\2\2\2\u028f\u028e\3\2\2\2\u0290\61\3\2\2\2\u0291\u0293"+ + "\5\u00e8u\2\u0292\u0291\3\2\2\2\u0293\u0296\3\2\2\2\u0294\u0292\3\2\2"+ + "\2\u0294\u0295\3\2\2\2\u0295\u0297\3\2\2\2\u0296\u0294\3\2\2\2\u0297\u0299"+ + "\7J\2\2\u0298\u029a\5\64\33\2\u0299\u0298\3\2\2\2\u0299\u029a\3\2\2\2"+ + "\u029a\63\3\2\2\2\u029b\u029c\7\24\2\2\u029c\u02a0\5\16\b\2\u029d\u029e"+ + "\7+\2\2\u029e\u02a0\5\16\b\2\u029f\u029b\3\2\2\2\u029f\u029d\3\2\2\2\u02a0"+ + "\65\3\2\2\2\u02a1\u02a2\b\34\1\2\u02a2\u02a3\7i\2\2\u02a3\u02a9\3\2\2"+ + "\2\u02a4\u02a5\f\3\2\2\u02a5\u02a6\7D\2\2\u02a6\u02a8\7i\2\2\u02a7\u02a4"+ + "\3\2\2\2\u02a8\u02ab\3\2\2\2\u02a9\u02a7\3\2\2\2\u02a9\u02aa\3\2\2\2\u02aa"+ + "\67\3\2\2\2\u02ab\u02a9\3\2\2\2\u02ac\u02b2\7i\2\2\u02ad\u02ae\5:\36\2"+ + "\u02ae\u02af\7D\2\2\u02af\u02b0\7i\2\2\u02b0\u02b2\3\2\2\2\u02b1\u02ac"+ + "\3\2\2\2\u02b1\u02ad\3\2\2\2\u02b29\3\2\2\2\u02b3\u02b4\b\36\1\2\u02b4"+ + "\u02b5\7i\2\2\u02b5\u02bb\3\2\2\2\u02b6\u02b7\f\3\2\2\u02b7\u02b8\7D\2"+ + "\2\u02b8\u02ba\7i\2\2\u02b9\u02b6\3\2\2\2\u02ba\u02bd\3\2\2\2\u02bb\u02b9"+ + "\3\2\2\2\u02bb\u02bc\3\2\2\2\u02bc;\3\2\2\2\u02bd\u02bb\3\2\2\2\u02be"+ + "\u02c4\7i\2\2\u02bf\u02c0\5@!\2\u02c0\u02c1\7D\2\2\u02c1\u02c2\7i\2\2"+ + "\u02c2\u02c4\3\2\2\2\u02c3\u02be\3\2\2\2\u02c3\u02bf\3\2\2\2\u02c4=\3"+ + "\2\2\2\u02c5\u02c6\7i\2\2\u02c6?\3\2\2\2\u02c7\u02c8\b!\1\2\u02c8\u02c9"+ + "\7i\2\2\u02c9\u02cf\3\2\2\2\u02ca\u02cb\f\3\2\2\u02cb\u02cc\7D\2\2\u02cc"+ + "\u02ce\7i\2\2\u02cd\u02ca\3\2\2\2\u02ce\u02d1\3\2\2\2\u02cf\u02cd\3\2"+ + "\2\2\u02cf\u02d0\3\2\2\2\u02d0A\3\2\2\2\u02d1\u02cf\3\2\2\2\u02d2\u02d4"+ + "\5D#\2\u02d3\u02d2\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d8\3\2\2\2\u02d5"+ + "\u02d7\5H%\2\u02d6\u02d5\3\2\2\2\u02d7\u02da\3\2\2\2\u02d8\u02d6\3\2\2"+ + "\2\u02d8\u02d9\3\2\2\2\u02d9\u02de\3\2\2\2\u02da\u02d8\3\2\2\2\u02db\u02dd"+ + "\5R*\2\u02dc\u02db\3\2\2\2\u02dd\u02e0\3\2\2\2\u02de\u02dc\3\2\2\2\u02de"+ + "\u02df\3\2\2\2\u02df\u02e1\3\2\2\2\u02e0\u02de\3\2\2\2\u02e1\u02e2\7\2"+ + "\2\3\u02e2C\3\2\2\2\u02e3\u02e5\5F$\2\u02e4\u02e3\3\2\2\2\u02e5\u02e8"+ + "\3\2\2\2\u02e6\u02e4\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7\u02e9\3\2\2\2\u02e8"+ + "\u02e6\3\2\2\2\u02e9\u02ea\7#\2\2\u02ea\u02ef\7i\2\2\u02eb\u02ec\7D\2"+ + "\2\u02ec\u02ee\7i\2\2\u02ed\u02eb\3\2\2\2\u02ee\u02f1\3\2\2\2\u02ef\u02ed"+ + "\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0\u02f2\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f2"+ + "\u02f3\7B\2\2\u02f3E\3\2\2\2\u02f4\u02f5\5\u00e8u\2\u02f5G\3\2\2\2\u02f6"+ + "\u02fb\5J&\2\u02f7\u02fb\5L\'\2\u02f8\u02fb\5N(\2\u02f9\u02fb\5P)\2\u02fa"+ + "\u02f6\3\2\2\2\u02fa\u02f7\3\2\2\2\u02fa\u02f8\3\2\2\2\u02fa\u02f9\3\2"+ + "\2\2\u02fbI\3\2\2\2\u02fc\u02fd\7\34\2\2\u02fd\u02fe\58\35\2\u02fe\u02ff"+ + "\7B\2\2\u02ffK\3\2\2\2\u0300\u0301\7\34\2\2\u0301\u0302\5:\36\2\u0302"+ + "\u0303\7D\2\2\u0303\u0304\7V\2\2\u0304\u0305\7B\2\2\u0305M\3\2\2\2\u0306"+ + "\u0307\7\34\2\2\u0307\u0308\7)\2\2\u0308\u0309\58\35\2\u0309\u030a\7D"+ + "\2\2\u030a\u030b\7i\2\2\u030b\u030c\7B\2\2\u030cO\3\2\2\2\u030d\u030e"+ + "\7\34\2\2\u030e\u030f\7)\2\2\u030f\u0310\58\35\2\u0310\u0311\7D\2\2\u0311"+ + "\u0312\7V\2\2\u0312\u0313\7B\2\2\u0313Q\3\2\2\2\u0314\u0318\5T+\2\u0315"+ + "\u0318\5\u00c8e\2\u0316\u0318\7B\2\2\u0317\u0314\3\2\2\2\u0317\u0315\3"+ + "\2\2\2\u0317\u0316\3\2\2\2\u0318S\3\2\2\2\u0319\u031c\5V,\2\u031a\u031c"+ + "\5\u00bc_\2\u031b\u0319\3\2\2\2\u031b\u031a\3\2\2\2\u031cU\3\2\2\2\u031d"+ + "\u031f\5X-\2\u031e\u031d\3\2\2\2\u031f\u0322\3\2\2\2\u0320\u031e\3\2\2"+ + "\2\u0320\u0321\3\2\2\2\u0321\u0323\3\2\2\2\u0322\u0320\3\2\2\2\u0323\u0324"+ + "\7\f\2\2\u0324\u0326\7i\2\2\u0325\u0327\5Z.\2\u0326\u0325\3\2\2\2\u0326"+ + "\u0327\3\2\2\2\u0327\u0329\3\2\2\2\u0328\u032a\5^\60\2\u0329\u0328\3\2"+ + "\2\2\u0329\u032a\3\2\2\2\u032a\u032c\3\2\2\2\u032b\u032d\5`\61\2\u032c"+ + "\u032b\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u032e\3\2\2\2\u032e\u032f\5d"+ + "\63\2\u032fW\3\2\2\2\u0330\u0339\5\u00e8u\2\u0331\u0339\7&\2\2\u0332\u0339"+ + "\7%\2\2\u0333\u0339\7$\2\2\u0334\u0339\7\4\2\2\u0335\u0339\7)\2\2\u0336"+ + "\u0339\7\25\2\2\u0337\u0339\7*\2\2\u0338\u0330\3\2\2\2\u0338\u0331\3\2"+ + "\2\2\u0338\u0332\3\2\2\2\u0338\u0333\3\2\2\2\u0338\u0334\3\2\2\2\u0338"+ + "\u0335\3\2\2\2\u0338\u0336\3\2\2\2\u0338\u0337\3\2\2\2\u0339Y\3\2\2\2"+ + "\u033a\u033b\7G\2\2\u033b\u033c\5\\/\2\u033c\u033d\7F\2\2\u033d[\3\2\2"+ + "\2\u033e\u0343\5$\23\2\u033f\u0340\7C\2\2\u0340\u0342\5$\23\2\u0341\u033f"+ + "\3\2\2\2\u0342\u0345\3\2\2\2\u0343\u0341\3\2\2\2\u0343\u0344\3\2\2\2\u0344"+ + "]\3\2\2\2\u0345\u0343\3\2\2\2\u0346\u0347\7\24\2\2\u0347\u0348\5\22\n"+ + "\2\u0348_\3\2\2\2\u0349\u034a\7\33\2\2\u034a\u034b\5b\62\2\u034ba\3\2"+ + "\2\2\u034c\u0351\5\30\r\2\u034d\u034e\7C\2\2\u034e\u0350\5\30\r\2\u034f"+ + "\u034d\3\2\2\2\u0350\u0353\3\2\2\2\u0351\u034f\3\2\2\2\u0351\u0352\3\2"+ + "\2\2\u0352c\3\2\2\2\u0353\u0351\3\2\2\2\u0354\u0358\7>\2\2\u0355\u0357"+ + "\5f\64\2\u0356\u0355\3\2\2\2\u0357\u035a\3\2\2\2\u0358\u0356\3\2\2\2\u0358"+ + "\u0359\3\2\2\2\u0359\u035b\3\2\2\2\u035a\u0358\3\2\2\2\u035b\u035c\7?"+ + "\2\2\u035ce\3\2\2\2\u035d\u0361\5h\65\2\u035e\u0361\5\u00acW\2\u035f\u0361"+ + "\5\u00aeX\2\u0360\u035d\3\2\2\2\u0360\u035e\3\2\2\2\u0360\u035f\3\2\2"+ + "\2\u0361g\3\2\2\2\u0362\u0368\5j\66\2\u0363\u0368\5\u008eH\2\u0364\u0368"+ + "\5T+\2\u0365\u0368\5\u00c8e\2\u0366\u0368\7B\2\2\u0367\u0362\3\2\2\2\u0367"+ + "\u0363\3\2\2\2\u0367\u0364\3\2\2\2\u0367\u0365\3\2\2\2\u0367\u0366\3\2"+ + "\2\2\u0368i\3\2\2\2\u0369\u036b\5l\67\2\u036a\u0369\3\2\2\2\u036b\u036e"+ + "\3\2\2\2\u036c\u036a\3\2\2\2\u036c\u036d\3\2\2\2\u036d\u0370\3\2\2\2\u036e"+ + "\u036c\3\2\2\2\u036f\u0371\5\u0106\u0084\2\u0370\u036f\3\2\2\2\u0370\u0371"+ + "\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\5n8\2\u0373\u0374\7B\2\2\u0374"+ + "k\3\2\2\2\u0375\u037e\5\u00e8u\2\u0376\u037e\7&\2\2\u0377\u037e\7%\2\2"+ + "\u0378\u037e\7$\2\2\u0379\u037e\7)\2\2\u037a\u037e\7\25\2\2\u037b\u037e"+ + "\7\61\2\2\u037c\u037e\7\64\2\2\u037d\u0375\3\2\2\2\u037d\u0376\3\2\2\2"+ + "\u037d\u0377\3\2\2\2\u037d\u0378\3\2\2\2\u037d\u0379\3\2\2\2\u037d\u037a"+ + "\3\2\2\2\u037d\u037b\3\2\2\2\u037d\u037c\3\2\2\2\u037em\3\2\2\2\u037f"+ + "\u0384\5p9\2\u0380\u0381\7C\2\2\u0381\u0383\5p9\2\u0382\u0380\3\2\2\2"+ + "\u0383\u0386\3\2\2\2\u0384\u0382\3\2\2\2\u0384\u0385\3\2\2\2\u0385o\3"+ + "\2\2\2\u0386\u0384\3\2\2\2\u0387\u038a\5r:\2\u0388\u0389\7E\2\2\u0389"+ + "\u038b\5t;\2\u038a\u0388\3\2\2\2\u038a\u038b\3\2\2\2\u038bq\3\2\2\2\u038c"+ + "\u038e\7i\2\2\u038d\u038f\5\"\22\2\u038e\u038d\3\2\2\2\u038e\u038f\3\2"+ + "\2\2\u038fs\3\2\2\2\u0390\u0393\5\u01a2\u00d2\2\u0391\u0393\5\u00fa~\2"+ + "\u0392\u0390\3\2\2\2\u0392\u0391\3\2\2\2\u0393u\3\2\2\2\u0394\u0397\5"+ + "x=\2\u0395\u0397\5z>\2\u0396\u0394\3\2\2\2\u0396\u0395\3\2\2\2\u0397w"+ + "\3\2\2\2\u0398\u039b\5\b\5\2\u0399\u039b\7\6\2\2\u039a\u0398\3\2\2\2\u039a"+ + "\u0399\3\2\2\2\u039by\3\2\2\2\u039c\u03a0\5|?\2\u039d\u03a0\5\u008aF\2"+ + "\u039e\u03a0\5\u008cG\2\u039f\u039c\3\2\2\2\u039f\u039d\3\2\2\2\u039f"+ + "\u039e\3\2\2\2\u03a0{\3\2\2\2\u03a1\u03a4\5\u0082B\2\u03a2\u03a4\5\u0088"+ + "E\2\u03a3\u03a1\3\2\2\2\u03a3\u03a2\3\2\2\2\u03a4\u03a9\3\2\2\2\u03a5"+ + "\u03a8\5\u0080A\2\u03a6\u03a8\5\u0086D\2\u03a7\u03a5\3\2\2\2\u03a7\u03a6"+ + "\3\2\2\2\u03a8\u03ab\3\2\2\2\u03a9\u03a7\3\2\2\2\u03a9\u03aa\3\2\2\2\u03aa"+ + "}\3\2\2\2\u03ab\u03a9\3\2\2\2\u03ac\u03ae\7i\2\2\u03ad\u03af\5,\27\2\u03ae"+ + "\u03ad\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03bd\3\2\2\2\u03b0\u03b1\5|"+ + "?\2\u03b1\u03b5\7D\2\2\u03b2\u03b4\5\u00e8u\2\u03b3\u03b2\3\2\2\2\u03b4"+ + "\u03b7\3\2\2\2\u03b5\u03b3\3\2\2\2\u03b5\u03b6\3\2\2\2\u03b6\u03b8\3\2"+ + "\2\2\u03b7\u03b5\3\2\2\2\u03b8\u03ba\7i\2\2\u03b9\u03bb\5,\27\2\u03ba"+ + "\u03b9\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bd\3\2\2\2\u03bc\u03ac\3\2"+ + "\2\2\u03bc\u03b0\3\2\2\2\u03bd\177\3\2\2\2\u03be\u03c2\7D\2\2\u03bf\u03c1"+ + "\5\u00e8u\2\u03c0\u03bf\3\2\2\2\u03c1\u03c4\3\2\2\2\u03c2\u03c0\3\2\2"+ + "\2\u03c2\u03c3\3\2\2\2\u03c3\u03c5\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c5\u03c7"+ + "\7i\2\2\u03c6\u03c8\5,\27\2\u03c7\u03c6\3\2\2\2\u03c7\u03c8\3\2\2\2\u03c8"+ + "\u0081\3\2\2\2\u03c9\u03cb\7i\2\2\u03ca\u03cc\5,\27\2\u03cb\u03ca\3\2"+ + "\2\2\u03cb\u03cc\3\2\2\2\u03cc\u0083\3\2\2\2\u03cd\u03ce\5~@\2\u03ce\u0085"+ + "\3\2\2\2\u03cf\u03d0\5\u0080A\2\u03d0\u0087\3\2\2\2\u03d1\u03d2\5\u0082"+ + "B\2\u03d2\u0089\3\2\2\2\u03d3\u03d4\7i\2\2\u03d4\u008b\3\2\2\2\u03d5\u03d6"+ + "\5x=\2\u03d6\u03d7\5\"\22\2\u03d7\u03df\3\2\2\2\u03d8\u03d9\5|?\2\u03d9"+ + "\u03da\5\"\22\2\u03da\u03df\3\2\2\2\u03db\u03dc\5\u008aF\2\u03dc\u03dd"+ + "\5\"\22\2\u03dd\u03df\3\2\2\2\u03de\u03d5\3\2\2\2\u03de\u03d8\3\2\2\2"+ + "\u03de\u03db\3\2\2\2\u03df\u008d\3\2\2\2\u03e0\u03e2\5\u0090I\2\u03e1"+ + "\u03e0\3\2\2\2\u03e2\u03e5\3\2\2\2\u03e3\u03e1\3\2\2\2\u03e3\u03e4\3\2"+ + "\2\2\u03e4\u03e6\3\2\2\2\u03e5\u03e3\3\2\2\2\u03e6\u03e7\5\u0092J\2\u03e7"+ + "\u03e8\5\u00aaV\2\u03e8\u008f\3\2\2\2\u03e9\u03f4\5\u00e8u\2\u03ea\u03f4"+ + "\7&\2\2\u03eb\u03f4\7%\2\2\u03ec\u03f4\7$\2\2\u03ed\u03f4\7\4\2\2\u03ee"+ + "\u03f4\7)\2\2\u03ef\u03f4\7\25\2\2\u03f0\u03f4\7-\2\2\u03f1\u03f4\7!\2"+ + "\2\u03f2\u03f4\7*\2\2\u03f3\u03e9\3\2\2\2\u03f3\u03ea\3\2\2\2\u03f3\u03eb"+ + "\3\2\2\2\u03f3\u03ec\3\2\2\2\u03f3\u03ed\3\2\2\2\u03f3\u03ee\3\2\2\2\u03f3"+ + "\u03ef\3\2\2\2\u03f3\u03f0\3\2\2\2\u03f3\u03f1\3\2\2\2\u03f3\u03f2\3\2"+ + "\2\2\u03f4\u0091\3\2\2\2\u03f5\u03f7\5\u0094K\2\u03f6\u03f5\3\2\2\2\u03f6"+ + "\u03f7\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8\u03fa\5\u0096L\2\u03f9\u03fb"+ + "\5\u00a4S\2\u03fa\u03f9\3\2\2\2\u03fa\u03fb\3\2\2\2\u03fb\u040b\3\2\2"+ + "\2\u03fc\u0400\5Z.\2\u03fd\u03ff\5\u00e8u\2\u03fe\u03fd\3\2\2\2\u03ff"+ + "\u0402\3\2\2\2\u0400\u03fe\3\2\2\2\u0400\u0401\3\2\2\2\u0401\u0404\3\2"+ + "\2\2\u0402\u0400\3\2\2\2\u0403\u0405\5\u0094K\2\u0404\u0403\3\2\2\2\u0404"+ + "\u0405\3\2\2\2\u0405\u0406\3\2\2\2\u0406\u0408\5\u0096L\2\u0407\u0409"+ + "\5\u00a4S\2\u0408\u0407\3\2\2\2\u0408\u0409\3\2\2\2\u0409\u040b\3\2\2"+ + "\2\u040a\u03f6\3\2\2\2\u040a\u03fc\3\2\2\2\u040b\u0093\3\2\2\2\u040c\u040f"+ + "\5v<\2\u040d\u040f\7\63\2\2\u040e\u040c\3\2\2\2\u040e\u040d\3\2\2\2\u040f"+ + "\u0095\3\2\2\2\u0410\u0411\7i\2\2\u0411\u0413\7<\2\2\u0412\u0414\5\u0098"+ + "M\2\u0413\u0412\3\2\2\2\u0413\u0414\3\2\2\2\u0414\u0415\3\2\2\2\u0415"+ + "\u0417\7=\2\2\u0416\u0418\5\"\22\2\u0417\u0416\3\2\2\2\u0417\u0418\3\2"+ + "\2\2\u0418\u0097\3\2\2\2\u0419\u041a\5\u009aN\2\u041a\u041b\7C\2\2\u041b"+ + "\u041c\5\u00a0Q\2\u041c\u041f\3\2\2\2\u041d\u041f\5\u00a0Q\2\u041e\u0419"+ + "\3\2\2\2\u041e\u041d\3\2\2\2\u041f\u0099\3\2\2\2\u0420\u0425\5\u009cO"+ + "\2\u0421\u0422\7C\2\2\u0422\u0424\5\u009cO\2\u0423\u0421\3\2\2\2\u0424"+ + "\u0427\3\2\2\2\u0425\u0423\3\2\2\2\u0425\u0426\3\2\2\2\u0426\u0431\3\2"+ + "\2\2\u0427\u0425\3\2\2\2\u0428\u042d\5\u00a2R\2\u0429\u042a\7C\2\2\u042a"+ + "\u042c\5\u009cO\2\u042b\u0429\3\2\2\2\u042c\u042f\3\2\2\2\u042d\u042b"+ + "\3\2\2\2\u042d\u042e\3\2\2\2\u042e\u0431\3\2\2\2\u042f\u042d\3\2\2\2\u0430"+ + "\u0420\3\2\2\2\u0430\u0428\3\2\2\2\u0431\u009b\3\2\2\2\u0432\u0434\5\u009e"+ + "P\2\u0433\u0432\3\2\2\2\u0434\u0437\3\2\2\2\u0435\u0433\3\2\2\2\u0435"+ + "\u0436\3\2\2\2\u0436\u0439\3\2\2\2\u0437\u0435\3\2\2\2\u0438\u043a\5v"+ + "<\2\u0439\u0438\3\2\2\2\u0439\u043a\3\2\2\2\u043a\u043b\3\2\2\2\u043b"+ + "\u043c\5r:\2\u043c\u009d\3\2\2\2\u043d\u0440\5\u00e8u\2\u043e\u0440\7"+ + "\25\2\2\u043f\u043d\3\2\2\2\u043f\u043e\3\2\2\2\u0440\u009f\3\2\2\2\u0441"+ + "\u0443\5\u009eP\2\u0442\u0441\3\2\2\2\u0443\u0446\3\2\2\2\u0444\u0442"+ + "\3\2\2\2\u0444\u0445\3\2\2\2\u0445\u0447\3\2\2\2\u0446\u0444\3\2\2\2\u0447"+ + "\u044b\5v<\2\u0448\u044a\5\u00e8u\2\u0449\u0448\3\2\2\2\u044a\u044d\3"+ + "\2\2\2\u044b\u0449\3\2\2\2\u044b\u044c\3\2\2\2\u044c\u044e\3\2\2\2\u044d"+ + "\u044b\3\2\2\2\u044e\u044f\7k\2\2\u044f\u0450\5r:\2\u0450\u0453\3\2\2"+ + "\2\u0451\u0453\5\u009cO\2\u0452\u0444\3\2\2\2\u0452\u0451\3\2\2\2\u0453"+ + "\u00a1\3\2\2\2\u0454\u0456\5\u00e8u\2\u0455\u0454\3\2\2\2\u0456\u0459"+ + "\3\2\2\2\u0457\u0455\3\2\2\2\u0457\u0458\3\2\2\2\u0458\u045a\3\2\2\2\u0459"+ + "\u0457\3\2\2\2\u045a\u045d\5v<\2\u045b\u045c\7i\2\2\u045c\u045e\7D\2\2"+ + "\u045d\u045b\3\2\2\2\u045d\u045e\3\2\2\2\u045e\u045f\3\2\2\2\u045f\u0460"+ + "\7.\2\2\u0460\u00a3\3\2\2\2\u0461\u0462\7\60\2\2\u0462\u0463\5\u00a6T"+ + "\2\u0463\u00a5\3\2\2\2\u0464\u0469\5\u00a8U\2\u0465\u0466\7C\2\2\u0466"+ + "\u0468\5\u00a8U\2\u0467\u0465\3\2\2\2\u0468\u046b\3\2\2\2\u0469\u0467"+ + "\3\2\2\2\u0469\u046a\3\2\2\2\u046a\u00a7\3\2\2\2\u046b\u0469\3\2\2\2\u046c"+ + "\u046f\5\22\n\2\u046d\u046f\5\36\20\2\u046e\u046c\3\2\2\2\u046e\u046d"+ + "\3\2\2\2\u046f\u00a9\3\2\2\2\u0470\u0473\5\u00fe\u0080\2\u0471\u0473\7"+ + "B\2\2\u0472\u0470\3\2\2\2\u0472\u0471\3\2\2\2\u0473\u00ab\3\2\2\2\u0474"+ + "\u0475\5\u00fe\u0080\2\u0475\u00ad\3\2\2\2\u0476\u0477\7)\2\2\u0477\u0478"+ + "\5\u00fe\u0080\2\u0478\u00af\3\2\2\2\u0479\u047b\5\u00b2Z\2\u047a\u0479"+ + "\3\2\2\2\u047b\u047e\3\2\2\2\u047c\u047a\3\2\2\2\u047c\u047d\3\2\2\2\u047d"+ + "\u047f\3\2\2\2\u047e\u047c\3\2\2\2\u047f\u0481\5\u00b4[\2\u0480\u0482"+ + "\5\u00a4S\2\u0481\u0480\3\2\2\2\u0481\u0482\3\2\2\2\u0482\u0483\3\2\2"+ + "\2\u0483\u0484\5\u00b8]\2\u0484\u00b1\3\2\2\2\u0485\u048a\5\u00e8u\2\u0486"+ + "\u048a\7&\2\2\u0487\u048a\7%\2\2\u0488\u048a\7$\2\2\u0489\u0485\3\2\2"+ + "\2\u0489\u0486\3\2\2\2\u0489\u0487\3\2\2\2\u0489\u0488\3\2\2\2\u048a\u00b3"+ + "\3\2\2\2\u048b\u048d\5Z.\2\u048c\u048b\3\2\2\2\u048c\u048d\3\2\2\2\u048d"+ + "\u048e\3\2\2\2\u048e\u048f\5\u00b6\\\2\u048f\u0491\7<\2\2\u0490\u0492"+ + "\5\u0098M\2\u0491\u0490\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\3\2\2"+ + "\2\u0493\u0494\7=\2\2\u0494\u00b5\3\2\2\2\u0495\u0496\7i\2\2\u0496\u00b7"+ + "\3\2\2\2\u0497\u0499\7>\2\2\u0498\u049a\5\u00ba^\2\u0499\u0498\3\2\2\2"+ + "\u0499\u049a\3\2\2\2\u049a\u049c\3\2\2\2\u049b\u049d\5\u0100\u0081\2\u049c"+ + "\u049b\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u049f\7?"+ + "\2\2\u049f\u00b9\3\2\2\2\u04a0\u04a2\5,\27\2\u04a1\u04a0\3\2\2\2\u04a1"+ + "\u04a2\3\2\2\2\u04a2\u04a3\3\2\2\2\u04a3\u04a4\7.\2\2\u04a4\u04a6\7<\2"+ + "\2\u04a5\u04a7\5\u0192\u00ca\2\u04a6\u04a5\3\2\2\2\u04a6\u04a7\3\2\2\2"+ + "\u04a7\u04a8\3\2\2\2\u04a8\u04a9\7=\2\2\u04a9\u04cf\7B\2\2\u04aa\u04ac"+ + "\5,\27\2\u04ab\u04aa\3\2\2\2\u04ab\u04ac\3\2\2\2\u04ac\u04ad\3\2\2\2\u04ad"+ + "\u04ae\7+\2\2\u04ae\u04b0\7<\2\2\u04af\u04b1\5\u0192\u00ca\2\u04b0\u04af"+ + "\3\2\2\2\u04b0\u04b1\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b3\7=\2\2\u04b3"+ + "\u04cf\7B\2\2\u04b4\u04b5\5<\37\2\u04b5\u04b7\7D\2\2\u04b6\u04b8\5,\27"+ + "\2\u04b7\u04b6\3\2\2\2\u04b7\u04b8\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9\u04ba"+ + "\7+\2\2\u04ba\u04bc\7<\2\2\u04bb\u04bd\5\u0192\u00ca\2\u04bc\u04bb\3\2"+ + "\2\2\u04bc\u04bd\3\2\2\2\u04bd\u04be\3\2\2\2\u04be\u04bf\7=\2\2\u04bf"+ + "\u04c0\7B\2\2\u04c0\u04cf\3\2\2\2\u04c1\u04c2\5\u0164\u00b3\2\u04c2\u04c4"+ + "\7D\2\2\u04c3\u04c5\5,\27\2\u04c4\u04c3\3\2\2\2\u04c4\u04c5\3\2\2\2\u04c5"+ + "\u04c6\3\2\2\2\u04c6\u04c7\7+\2\2\u04c7\u04c9\7<\2\2\u04c8\u04ca\5\u0192"+ + "\u00ca\2\u04c9\u04c8\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u04cb\3\2\2\2\u04cb"+ + "\u04cc\7=\2\2\u04cc\u04cd\7B\2\2\u04cd\u04cf\3\2\2\2\u04ce\u04a1\3\2\2"+ + "\2\u04ce\u04ab\3\2\2\2\u04ce\u04b4\3\2\2\2\u04ce\u04c1\3\2\2\2\u04cf\u00bb"+ + "\3\2\2\2\u04d0\u04d2\5X-\2\u04d1\u04d0\3\2\2\2\u04d2\u04d5\3\2\2\2\u04d3"+ + "\u04d1\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u04d6\3\2\2\2\u04d5\u04d3\3\2"+ + "\2\2\u04d6\u04d7\7\23\2\2\u04d7\u04d9\7i\2\2\u04d8\u04da\5`\61\2\u04d9"+ + "\u04d8\3\2\2\2\u04d9\u04da\3\2\2\2\u04da\u04db\3\2\2\2\u04db\u04dc\5\u00be"+ + "`\2\u04dc\u00bd\3\2\2\2\u04dd\u04df\7>\2\2\u04de\u04e0\5\u00c0a\2\u04df"+ + "\u04de\3\2\2\2\u04df\u04e0\3\2\2\2\u04e0\u04e2\3\2\2\2\u04e1\u04e3\7C"+ + "\2\2\u04e2\u04e1\3\2\2\2\u04e2\u04e3\3\2\2\2\u04e3\u04e5\3\2\2\2\u04e4"+ + "\u04e6\5\u00c6d\2\u04e5\u04e4\3\2\2\2\u04e5\u04e6\3\2\2\2\u04e6\u04e7"+ + "\3\2\2\2\u04e7\u04e8\7?\2\2\u04e8\u00bf\3\2\2\2\u04e9\u04ee\5\u00c2b\2"+ + "\u04ea\u04eb\7C\2\2\u04eb\u04ed\5\u00c2b\2\u04ec\u04ea\3\2\2\2\u04ed\u04f0"+ + "\3\2\2\2\u04ee\u04ec\3\2\2\2\u04ee\u04ef\3\2\2\2\u04ef\u00c1\3\2\2\2\u04f0"+ + "\u04ee\3\2\2\2\u04f1\u04f3\5\u00c4c\2\u04f2\u04f1\3\2\2\2\u04f3\u04f6"+ + "\3\2\2\2\u04f4\u04f2\3\2\2\2\u04f4\u04f5\3\2\2\2\u04f5\u04f7\3\2\2\2\u04f6"+ + "\u04f4\3\2\2\2\u04f7\u04fd\7i\2\2\u04f8\u04fa\7<\2\2\u04f9\u04fb\5\u0192"+ + "\u00ca\2\u04fa\u04f9\3\2\2\2\u04fa\u04fb\3\2\2\2\u04fb\u04fc\3\2\2\2\u04fc"+ + "\u04fe\7=\2\2\u04fd\u04f8\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u0500\3\2"+ + "\2\2\u04ff\u0501\5d\63\2\u0500\u04ff\3\2\2\2\u0500\u0501\3\2\2\2\u0501"+ + "\u00c3\3\2\2\2\u0502\u0503\5\u00e8u\2\u0503\u00c5\3\2\2\2\u0504\u0508"+ + "\7B\2\2\u0505\u0507\5f\64\2\u0506\u0505\3\2\2\2\u0507\u050a\3\2\2\2\u0508"+ + "\u0506\3\2\2\2\u0508\u0509\3\2\2\2\u0509\u00c7\3\2\2\2\u050a\u0508\3\2"+ + "\2\2\u050b\u050e\5\u00caf\2\u050c\u050e\5\u00dco\2\u050d\u050b\3\2\2\2"+ + "\u050d\u050c\3\2\2\2\u050e\u00c9\3\2\2\2\u050f\u0511\5\u00ccg\2\u0510"+ + "\u050f\3\2\2\2\u0511\u0514\3\2\2\2\u0512\u0510\3\2\2\2\u0512\u0513\3\2"+ + "\2\2\u0513\u0515\3\2\2\2\u0514\u0512\3\2\2\2\u0515\u0516\7\37\2\2\u0516"+ + "\u0518\7i\2\2\u0517\u0519\5Z.\2\u0518\u0517\3\2\2\2\u0518\u0519\3\2\2"+ + "\2\u0519\u051b\3\2\2\2\u051a\u051c\5\u00ceh\2\u051b\u051a\3\2\2\2\u051b"+ + "\u051c\3\2\2\2\u051c\u051d\3\2\2\2\u051d\u051e\5\u00d0i\2\u051e\u00cb"+ + "\3\2\2\2\u051f\u0527\5\u00e8u\2\u0520\u0527\7&\2\2\u0521\u0527\7%\2\2"+ + "\u0522\u0527\7$\2\2\u0523\u0527\7\4\2\2\u0524\u0527\7)\2\2\u0525\u0527"+ + "\7*\2\2\u0526\u051f\3\2\2\2\u0526\u0520\3\2\2\2\u0526\u0521\3\2\2\2\u0526"+ + "\u0522\3\2\2\2\u0526\u0523\3\2\2\2\u0526\u0524\3\2\2\2\u0526\u0525\3\2"+ + "\2\2\u0527\u00cd\3\2\2\2\u0528\u0529\7\24\2\2\u0529\u052a\5b\62\2\u052a"+ + "\u00cf\3\2\2\2\u052b\u052f\7>\2\2\u052c\u052e\5\u00d2j\2\u052d\u052c\3"+ + "\2\2\2\u052e\u0531\3\2\2\2\u052f\u052d\3\2\2\2\u052f\u0530\3\2\2\2\u0530"+ + "\u0532\3\2\2\2\u0531\u052f\3\2\2\2\u0532\u0533\7?\2\2\u0533\u00d1\3\2"+ + "\2\2\u0534\u053a\5\u00d4k\2\u0535\u053a\5\u00d8m\2\u0536\u053a\5T+\2\u0537"+ + "\u053a\5\u00c8e\2\u0538\u053a\7B\2\2\u0539\u0534\3\2\2\2\u0539\u0535\3"+ + "\2\2\2\u0539\u0536\3\2\2\2\u0539\u0537\3\2\2\2\u0539\u0538\3\2\2\2\u053a"+ + "\u00d3\3\2\2\2\u053b\u053d\5\u00d6l\2\u053c\u053b\3\2\2\2\u053d\u0540"+ + "\3\2\2\2\u053e\u053c\3\2\2\2\u053e\u053f\3\2\2\2\u053f\u0541\3\2\2\2\u0540"+ + "\u053e\3\2\2\2\u0541\u0542\5v<\2\u0542\u0543\5n8\2\u0543\u0544\7B\2\2"+ + "\u0544\u00d5\3\2\2\2\u0545\u054a\5\u00e8u\2\u0546\u054a\7&\2\2\u0547\u054a"+ + "\7)\2\2\u0548\u054a\7\25\2\2\u0549\u0545\3\2\2\2\u0549\u0546\3\2\2\2\u0549"+ + "\u0547\3\2\2\2\u0549\u0548\3\2\2\2\u054a\u00d7\3\2\2\2\u054b\u054d\5\u00da"+ + "n\2\u054c\u054b\3\2\2\2\u054d\u0550\3\2\2\2\u054e\u054c\3\2\2\2\u054e"+ + "\u054f\3\2\2\2\u054f\u0551\3\2\2\2\u0550\u054e\3\2\2\2\u0551\u0552\5\u0092"+ + "J\2\u0552\u0553\5\u00aaV\2\u0553\u00d9\3\2\2\2\u0554\u055b\5\u00e8u\2"+ + "\u0555\u055b\7&\2\2\u0556\u055b\7\4\2\2\u0557\u055b\7\17\2\2\u0558\u055b"+ + "\7)\2\2\u0559\u055b\7*\2\2\u055a\u0554\3\2\2\2\u055a\u0555\3\2\2\2\u055a"+ + "\u0556\3\2\2\2\u055a\u0557\3\2\2\2\u055a\u0558\3\2\2\2\u055a\u0559\3\2"+ + "\2\2\u055b\u00db\3\2\2\2\u055c\u055e\5\u00ccg\2\u055d\u055c\3\2\2\2\u055e"+ + "\u0561\3\2\2\2\u055f\u055d\3\2\2\2\u055f\u0560\3\2\2\2\u0560\u0562\3\2"+ + "\2\2\u0561\u055f\3\2\2\2\u0562\u0563\7j\2\2\u0563\u0564\7\37\2\2\u0564"+ + "\u0565\7i\2\2\u0565\u0566\5\u00dep\2\u0566\u00dd\3\2\2\2\u0567\u056b\7"+ + ">\2\2\u0568\u056a\5\u00e0q\2\u0569\u0568\3\2\2\2\u056a\u056d\3\2\2\2\u056b"+ + "\u0569\3\2\2\2\u056b\u056c\3\2\2\2\u056c\u056e\3\2\2\2\u056d\u056b\3\2"+ + "\2\2\u056e\u056f\7?\2\2\u056f\u00df\3\2\2\2\u0570\u0576\5\u00e2r\2\u0571"+ + "\u0576\5\u00d4k\2\u0572\u0576\5T+\2\u0573\u0576\5\u00c8e\2\u0574\u0576"+ + "\7B\2\2\u0575\u0570\3\2\2\2\u0575\u0571\3\2\2\2\u0575\u0572\3\2\2\2\u0575"+ + "\u0573\3\2\2\2\u0575\u0574\3\2\2\2\u0576\u00e1\3\2\2\2\u0577\u0579\5\u00e4"+ + "s\2\u0578\u0577\3\2\2\2\u0579\u057c\3\2\2\2\u057a\u0578\3\2\2\2\u057a"+ + "\u057b\3\2\2\2\u057b\u057d\3\2\2\2\u057c\u057a\3\2\2\2\u057d\u057e\5v"+ + "<\2\u057e\u057f\7i\2\2\u057f\u0580\7<\2\2\u0580\u0582\7=\2\2\u0581\u0583"+ + "\5\"\22\2\u0582\u0581\3\2\2\2\u0582\u0583\3\2\2\2\u0583\u0585\3\2\2\2"+ + "\u0584\u0586\5\u00e6t\2\u0585\u0584\3\2\2\2\u0585\u0586\3\2\2\2\u0586"+ + "\u0587\3\2\2\2\u0587\u0588\7B\2\2\u0588\u00e3\3\2\2\2\u0589\u058d\5\u00e8"+ + "u\2\u058a\u058d\7&\2\2\u058b\u058d\7\4\2\2\u058c\u0589\3\2\2\2\u058c\u058a"+ + "\3\2\2\2\u058c\u058b\3\2\2\2\u058d\u00e5\3\2\2\2\u058e\u058f\7\17\2\2"+ + "\u058f\u0590\5\u00f0y\2\u0590\u00e7\3\2\2\2\u0591\u0595\5\u00eav\2\u0592"+ + "\u0595\5\u00f6|\2\u0593\u0595\5\u00f8}\2\u0594\u0591\3\2\2\2\u0594\u0592"+ + "\3\2\2\2\u0594\u0593\3\2\2\2\u0595\u00e9\3\2\2\2\u0596\u0597\7j\2\2\u0597"+ + "\u0598\58\35\2\u0598\u059a\7<\2\2\u0599\u059b\5\u00ecw\2\u059a\u0599\3"+ + "\2\2\2\u059a\u059b\3\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\7=\2\2\u059d"+ + "\u00eb\3\2\2\2\u059e\u05a3\5\u00eex\2\u059f\u05a0\7C\2\2\u05a0\u05a2\5"+ + "\u00eex\2\u05a1\u059f\3\2\2\2\u05a2\u05a5\3\2\2\2\u05a3\u05a1\3\2\2\2"+ + "\u05a3\u05a4\3\2\2\2\u05a4\u00ed\3\2\2\2\u05a5\u05a3\3\2\2\2\u05a6\u05a7"+ + "\7i\2\2\u05a7\u05a8\7E\2\2\u05a8\u05a9\5\u00f0y\2\u05a9\u00ef\3\2\2\2"+ + "\u05aa\u05ae\5\u01b4\u00db\2\u05ab\u05ae\5\u00f2z\2\u05ac\u05ae\5\u00e8"+ + "u\2\u05ad\u05aa\3\2\2\2\u05ad\u05ab\3\2\2\2\u05ad\u05ac\3\2\2\2\u05ae"+ + "\u00f1\3\2\2\2\u05af\u05b1\7>\2\2\u05b0\u05b2\5\u00f4{\2\u05b1\u05b0\3"+ + "\2\2\2\u05b1\u05b2\3\2\2\2\u05b2\u05b4\3\2\2\2\u05b3\u05b5\7C\2\2\u05b4"+ + "\u05b3\3\2\2\2\u05b4\u05b5\3\2\2\2\u05b5\u05b6\3\2\2\2\u05b6\u05b7\7?"+ + "\2\2\u05b7\u00f3\3\2\2\2\u05b8\u05bd\5\u00f0y\2\u05b9\u05ba\7C\2\2\u05ba"+ + "\u05bc\5\u00f0y\2\u05bb\u05b9\3\2\2\2\u05bc\u05bf\3\2\2\2\u05bd\u05bb"+ + "\3\2\2\2\u05bd\u05be\3\2\2\2\u05be\u00f5\3\2\2\2\u05bf\u05bd\3\2\2\2\u05c0"+ + "\u05c1\7j\2\2\u05c1\u05c2\58\35\2\u05c2\u00f7\3\2\2\2\u05c3\u05c4\7j\2"+ + "\2\u05c4\u05c5\58\35\2\u05c5\u05c6\7<\2\2\u05c6\u05c7\5\u00f0y\2\u05c7"+ + "\u05c8\7=\2\2\u05c8\u00f9\3\2\2\2\u05c9\u05cb\7>\2\2\u05ca\u05cc\5\u00fc"+ + "\177\2\u05cb\u05ca\3\2\2\2\u05cb\u05cc\3\2\2\2\u05cc\u05ce\3\2\2\2\u05cd"+ + "\u05cf\7C\2\2\u05ce\u05cd\3\2\2\2\u05ce\u05cf\3\2\2\2\u05cf\u05d0\3\2"+ + "\2\2\u05d0\u05d1\7?\2\2\u05d1\u00fb\3\2\2\2\u05d2\u05d7\5t;\2\u05d3\u05d4"+ + "\7C\2\2\u05d4\u05d6\5t;\2\u05d5\u05d3\3\2\2\2\u05d6\u05d9\3\2\2\2\u05d7"+ + "\u05d5\3\2\2\2\u05d7\u05d8\3\2\2\2\u05d8\u00fd\3\2\2\2\u05d9\u05d7\3\2"+ + "\2\2\u05da\u05dc\7>\2\2\u05db\u05dd\5\u0100\u0081\2\u05dc\u05db\3\2\2"+ + "\2\u05dc\u05dd\3\2\2\2\u05dd\u05de\3\2\2\2\u05de\u05df\7?\2\2\u05df\u00ff"+ + "\3\2\2\2\u05e0\u05e4\5\u0102\u0082\2\u05e1\u05e3\5\u0102\u0082\2\u05e2"+ + "\u05e1\3\2\2\2\u05e3\u05e6\3\2\2\2\u05e4\u05e2\3\2\2\2\u05e4\u05e5\3\2"+ + "\2\2\u05e5\u0101\3\2\2\2\u05e6\u05e4\3\2\2\2\u05e7\u05eb\5\u0104\u0083"+ + "\2\u05e8\u05eb\5T+\2\u05e9\u05eb\5\u010a\u0086\2\u05ea\u05e7\3\2\2\2\u05ea"+ + "\u05e8\3\2\2\2\u05ea\u05e9\3\2\2\2\u05eb\u0103\3\2\2\2\u05ec\u05ed\5\u0108"+ + "\u0085\2\u05ed\u05ee\7B\2\2\u05ee\u0105\3\2\2\2\u05ef\u05f2\5v<\2\u05f0"+ + "\u05f2\7\3\2\2\u05f1\u05ef\3\2\2\2\u05f1\u05f0\3\2\2\2\u05f2\u0107\3\2"+ + "\2\2\u05f3\u05f5\5\u009eP\2\u05f4\u05f3\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6"+ + "\u05f4\3\2\2\2\u05f6\u05f7\3\2\2\2\u05f7\u05f9\3\2\2\2\u05f8\u05f6\3\2"+ + "\2\2\u05f9\u05fa\5\u0106\u0084\2\u05fa\u05fb\5n8\2\u05fb\u0109\3\2\2\2"+ + "\u05fc\u0603\5\u010e\u0088\2\u05fd\u0603\5\u0112\u008a\2\u05fe\u0603\5"+ + "\u011a\u008e\2\u05ff\u0603\5\u011c\u008f\2\u0600\u0603\5\u012e\u0098\2"+ + "\u0601\u0603\5\u0134\u009b\2\u0602\u05fc\3\2\2\2\u0602\u05fd\3\2\2\2\u0602"+ + "\u05fe\3\2\2\2\u0602\u05ff\3\2\2\2\u0602\u0600\3\2\2\2\u0602\u0601\3\2"+ + "\2\2\u0603\u010b\3\2\2\2\u0604\u060a\5\u010e\u0088\2\u0605\u060a\5\u0114"+ + "\u008b\2\u0606\u060a\5\u011e\u0090\2\u0607\u060a\5\u0130\u0099\2\u0608"+ + "\u060a\5\u0136\u009c\2\u0609\u0604\3\2\2\2\u0609\u0605\3\2\2\2\u0609\u0606"+ + "\3\2\2\2\u0609\u0607\3\2\2\2\u0609\u0608\3\2\2\2\u060a\u010d\3\2\2\2\u060b"+ + "\u0618\5\u00fe\u0080\2\u060c\u0618\5\u0110\u0089\2\u060d\u0618\5\u0116"+ + "\u008c\2\u060e\u0618\5\u0120\u0091\2\u060f\u0618\5\u0122\u0092\2\u0610"+ + "\u0618\5\u0132\u009a\2\u0611\u0618\5\u0146\u00a4\2\u0612\u0618\5\u0148"+ + "\u00a5\2\u0613\u0618\5\u014a\u00a6\2\u0614\u0618\5\u014e\u00a8\2\u0615"+ + "\u0618\5\u014c\u00a7\2\u0616\u0618\5\u0150\u00a9\2\u0617\u060b\3\2\2\2"+ + "\u0617\u060c\3\2\2\2\u0617\u060d\3\2\2\2\u0617\u060e\3\2\2\2\u0617\u060f"+ + "\3\2\2\2\u0617\u0610\3\2\2\2\u0617\u0611\3\2\2\2\u0617\u0612\3\2\2\2\u0617"+ + "\u0613\3\2\2\2\u0617\u0614\3\2\2\2\u0617\u0615\3\2\2\2\u0617\u0616\3\2"+ + "\2\2\u0618\u010f\3\2\2\2\u0619\u061a\7B\2\2\u061a\u0111\3\2\2\2\u061b"+ + "\u061c\7i\2\2\u061c\u061d\7K\2\2\u061d\u061e\5\u010a\u0086\2\u061e\u0113"+ + "\3\2\2\2\u061f\u0620\7i\2\2\u0620\u0621\7K\2\2\u0621\u0622\5\u010c\u0087"+ + "\2\u0622\u0115\3\2\2\2\u0623\u0624\5\u0118\u008d\2\u0624\u0625\7B\2\2"+ + "\u0625\u0117\3\2\2\2\u0626\u062e\5\u01ae\u00d8\2\u0627\u062e\5\u01cc\u00e7"+ + "\2\u0628\u062e\5\u01ce\u00e8\2\u0629\u062e\5\u01d4\u00eb\2\u062a\u062e"+ + "\5\u01d8\u00ed\2\u062b\u062e\5\u018c\u00c7\2\u062c\u062e\5\u0178\u00bd"+ + "\2\u062d\u0626\3\2\2\2\u062d\u0627\3\2\2\2\u062d\u0628\3\2\2\2\u062d\u0629"+ + "\3\2\2\2\u062d\u062a\3\2\2\2\u062d\u062b\3\2\2\2\u062d\u062c\3\2\2\2\u062e"+ + "\u0119\3\2\2\2\u062f\u0630\7\31\2\2\u0630\u0631\7<\2\2\u0631\u0632\5\u01a2"+ + "\u00d2\2\u0632\u0633\7=\2\2\u0633\u0634\5\u010a\u0086\2\u0634\u011b\3"+ + "\2\2\2\u0635\u0636\7\31\2\2\u0636\u0637\7<\2\2\u0637\u0638\5\u01a2\u00d2"+ + "\2\u0638\u0639\7=\2\2\u0639\u063a\5\u010c\u0087\2\u063a\u063b\7\22\2\2"+ + "\u063b\u063c\5\u010a\u0086\2\u063c\u011d\3\2\2\2\u063d\u063e\7\31\2\2"+ + "\u063e\u063f\7<\2\2\u063f\u0640\5\u01a2\u00d2\2\u0640\u0641\7=\2\2\u0641"+ + "\u0642\5\u010c\u0087\2\u0642\u0643\7\22\2\2\u0643\u0644\5\u010c\u0087"+ + "\2\u0644\u011f\3\2\2\2\u0645\u0646\7\5\2\2\u0646\u0647\5\u01a2\u00d2\2"+ + "\u0647\u0648\7B\2\2\u0648\u0650\3\2\2\2\u0649\u064a\7\5\2\2\u064a\u064b"+ + "\5\u01a2\u00d2\2\u064b\u064c\7K\2\2\u064c\u064d\5\u01a2\u00d2\2\u064d"+ + "\u064e\7B\2\2\u064e\u0650\3\2\2\2\u064f\u0645\3\2\2\2\u064f\u0649\3\2"+ + "\2\2\u0650\u0121\3\2\2\2\u0651\u0652\7,\2\2\u0652\u0653\7<\2\2\u0653\u0654"+ + "\5\u01a2\u00d2\2\u0654\u0655\7=\2\2\u0655\u0656\5\u0124\u0093\2\u0656"+ + "\u0123\3\2\2\2\u0657\u065b\7>\2\2\u0658\u065a\5\u0126\u0094\2\u0659\u0658"+ + "\3\2\2\2\u065a\u065d\3\2\2\2\u065b\u0659\3\2\2\2\u065b\u065c\3\2\2\2\u065c"+ + "\u0661\3\2\2\2\u065d\u065b\3\2\2\2\u065e\u0660\5\u012a\u0096\2\u065f\u065e"+ + "\3\2\2\2\u0660\u0663\3\2\2\2\u0661\u065f\3\2\2\2\u0661\u0662\3\2\2\2\u0662"+ + "\u0664\3\2\2\2\u0663\u0661\3\2\2\2\u0664\u0665\7?\2\2\u0665\u0125\3\2"+ + "\2\2\u0666\u0667\5\u0128\u0095\2\u0667\u0668\5\u0100\u0081\2\u0668\u0127"+ + "\3\2\2\2\u0669\u066d\5\u012a\u0096\2\u066a\u066c\5\u012a\u0096\2\u066b"+ + "\u066a\3\2\2\2\u066c\u066f\3\2\2\2\u066d\u066b\3\2\2\2\u066d\u066e\3\2"+ + "\2\2\u066e\u0129\3\2\2\2\u066f\u066d\3\2\2\2\u0670\u0671\7\t\2\2\u0671"+ + "\u0672\5\u01a0\u00d1\2\u0672\u0673\7K\2\2\u0673\u067b\3\2\2\2\u0674\u0675"+ + "\7\t\2\2\u0675\u0676\5\u012c\u0097\2\u0676\u0677\7K\2\2\u0677\u067b\3"+ + "\2\2\2\u0678\u0679\7\17\2\2\u0679\u067b\7K\2\2\u067a\u0670\3\2\2\2\u067a"+ + "\u0674\3\2\2\2\u067a\u0678\3\2\2\2\u067b\u012b\3\2\2\2\u067c\u067d\7i"+ + "\2\2\u067d\u012d\3\2\2\2\u067e\u067f\7\65\2\2\u067f\u0680\7<\2\2\u0680"+ + "\u0681\5\u01a2\u00d2\2\u0681\u0682\7=\2\2\u0682\u0683\5\u010a\u0086\2"+ + "\u0683\u012f\3\2\2\2\u0684\u0685\7\65\2\2\u0685\u0686\7<\2\2\u0686\u0687"+ + "\5\u01a2\u00d2\2\u0687\u0688\7=\2\2\u0688\u0689\5\u010c\u0087\2\u0689"+ + "\u0131\3\2\2\2\u068a\u068b\7\20\2\2\u068b\u068c\5\u010a\u0086\2\u068c"+ + "\u068d\7\65\2\2\u068d\u068e\7<\2\2\u068e\u068f\5\u01a2\u00d2\2\u068f\u0690"+ + "\7=\2\2\u0690\u0691\7B\2\2\u0691\u0133\3\2\2\2\u0692\u0695\5\u0138\u009d"+ + "\2\u0693\u0695\5\u0142\u00a2\2\u0694\u0692\3\2\2\2\u0694\u0693\3\2\2\2"+ + "\u0695\u0135\3\2\2\2\u0696\u0699\5\u013a\u009e\2\u0697\u0699\5\u0144\u00a3"+ + "\2\u0698\u0696\3\2\2\2\u0698\u0697\3\2\2\2\u0699\u0137\3\2\2\2\u069a\u069b"+ + "\7\30\2\2\u069b\u069d\7<\2\2\u069c\u069e\5\u013c\u009f\2\u069d\u069c\3"+ + "\2\2\2\u069d\u069e\3\2\2\2\u069e\u069f\3\2\2\2\u069f\u06a1\7B\2\2\u06a0"+ + "\u06a2\5\u01a2\u00d2\2\u06a1\u06a0\3\2\2\2\u06a1\u06a2\3\2\2\2\u06a2\u06a3"+ + "\3\2\2\2\u06a3\u06a5\7B\2\2\u06a4\u06a6\5\u013e\u00a0\2\u06a5\u06a4\3"+ + "\2\2\2\u06a5\u06a6\3\2\2\2\u06a6\u06a7\3\2\2\2\u06a7\u06a8\7=\2\2\u06a8"+ + "\u06a9\5\u010a\u0086\2\u06a9\u0139\3\2\2\2\u06aa\u06ab\7\30\2\2\u06ab"+ + "\u06ad\7<\2\2\u06ac\u06ae\5\u013c\u009f\2\u06ad\u06ac\3\2\2\2\u06ad\u06ae"+ + "\3\2\2\2\u06ae\u06af\3\2\2\2\u06af\u06b1\7B\2\2\u06b0\u06b2\5\u01a2\u00d2"+ + "\2\u06b1\u06b0\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2\u06b3\3\2\2\2\u06b3\u06b5"+ + "\7B\2\2\u06b4\u06b6\5\u013e\u00a0\2\u06b5\u06b4\3\2\2\2\u06b5\u06b6\3"+ + "\2\2\2\u06b6\u06b7\3\2\2\2\u06b7\u06b8\7=\2\2\u06b8\u06b9\5\u010c\u0087"+ + "\2\u06b9\u013b\3\2\2\2\u06ba\u06bd\5\u0140\u00a1\2\u06bb\u06bd\5\u0108"+ + "\u0085\2\u06bc\u06ba\3\2\2\2\u06bc\u06bb\3\2\2\2\u06bd\u013d\3\2\2\2\u06be"+ + "\u06bf\5\u0140\u00a1\2\u06bf\u013f\3\2\2\2\u06c0\u06c5\5\u0118\u008d\2"+ + "\u06c1\u06c2\7C\2\2\u06c2\u06c4\5\u0118\u008d\2\u06c3\u06c1\3\2\2\2\u06c4"+ + "\u06c7\3\2\2\2\u06c5\u06c3\3\2\2\2\u06c5\u06c6\3\2\2\2\u06c6\u0141\3\2"+ + "\2\2\u06c7\u06c5\3\2\2\2\u06c8\u06c9\7\30\2\2\u06c9\u06cd\7<\2\2\u06ca"+ + "\u06cc\5\u009eP\2\u06cb\u06ca\3\2\2\2\u06cc\u06cf\3\2\2\2\u06cd\u06cb"+ + "\3\2\2\2\u06cd\u06ce\3\2\2\2\u06ce\u06d0\3\2\2\2\u06cf\u06cd\3\2\2\2\u06d0"+ + "\u06d1\5v<\2\u06d1\u06d2\5r:\2\u06d2\u06d3\7K\2\2\u06d3\u06d4\5\u01a2"+ + "\u00d2\2\u06d4\u06d5\7=\2\2\u06d5\u06d6\5\u010a\u0086\2\u06d6\u0143\3"+ + "\2\2\2\u06d7\u06d8\7\30\2\2\u06d8\u06dc\7<\2\2\u06d9\u06db\5\u009eP\2"+ + "\u06da\u06d9\3\2\2\2\u06db\u06de\3\2\2\2\u06dc\u06da\3\2\2\2\u06dc\u06dd"+ + "\3\2\2\2\u06dd\u06df\3\2\2\2\u06de\u06dc\3\2\2\2\u06df\u06e0\5v<\2\u06e0"+ + "\u06e1\5r:\2\u06e1\u06e2\7K\2\2\u06e2\u06e3\5\u01a2\u00d2\2\u06e3\u06e4"+ + "\7=\2\2\u06e4\u06e5\5\u010c\u0087\2\u06e5\u0145\3\2\2\2\u06e6\u06e8\7"+ + "\7\2\2\u06e7\u06e9\7i\2\2\u06e8\u06e7\3\2\2\2\u06e8\u06e9\3\2\2\2\u06e9"+ + "\u06ea\3\2\2\2\u06ea\u06eb\7B\2\2\u06eb\u0147\3\2\2\2\u06ec\u06ee\7\16"+ + "\2\2\u06ed\u06ef\7i\2\2\u06ee\u06ed\3\2\2\2\u06ee\u06ef\3\2\2\2\u06ef"+ + "\u06f0\3\2\2\2\u06f0\u06f1\7B\2\2\u06f1\u0149\3\2\2\2\u06f2\u06f4\7\'"+ + "\2\2\u06f3\u06f5\5\u01a2\u00d2\2\u06f4\u06f3\3\2\2\2\u06f4\u06f5\3\2\2"+ + "\2\u06f5\u06f6\3\2\2\2\u06f6\u06f7\7B\2\2\u06f7\u014b\3\2\2\2\u06f8\u06f9"+ + "\7/\2\2\u06f9\u06fa\5\u01a2\u00d2\2\u06fa\u06fb\7B\2\2\u06fb\u014d\3\2"+ + "\2\2\u06fc\u06fd\7-\2\2\u06fd\u06fe\7<\2\2\u06fe\u06ff\5\u01a2\u00d2\2"+ + "\u06ff\u0700\7=\2\2\u0700\u0701\5\u00fe\u0080\2\u0701\u014f\3\2\2\2\u0702"+ + "\u0703\7\62\2\2\u0703\u0704\5\u00fe\u0080\2\u0704\u0705\5\u0152\u00aa"+ + "\2\u0705\u070f\3\2\2\2\u0706\u0707\7\62\2\2\u0707\u0709\5\u00fe\u0080"+ + "\2\u0708\u070a\5\u0152\u00aa\2\u0709\u0708\3\2\2\2\u0709\u070a\3\2\2\2"+ + "\u070a\u070b\3\2\2\2\u070b\u070c\5\u015a\u00ae\2\u070c\u070f\3\2\2\2\u070d"+ + "\u070f\5\u015c\u00af\2\u070e\u0702\3\2\2\2\u070e\u0706\3\2\2\2\u070e\u070d"+ + "\3\2\2\2\u070f\u0151\3\2\2\2\u0710\u0714\5\u0154\u00ab\2\u0711\u0713\5"+ + "\u0154\u00ab\2\u0712\u0711\3\2\2\2\u0713\u0716\3\2\2\2\u0714\u0712\3\2"+ + "\2\2\u0714\u0715\3\2\2\2\u0715\u0153\3\2\2\2\u0716\u0714\3\2\2\2\u0717"+ + "\u0718\7\n\2\2\u0718\u0719\7<\2\2\u0719\u071a\5\u0156\u00ac\2\u071a\u071b"+ + "\7=\2\2\u071b\u071c\5\u00fe\u0080\2\u071c\u0155\3\2\2\2\u071d\u071f\5"+ + "\u009eP\2\u071e\u071d\3\2\2\2\u071f\u0722\3\2\2\2\u0720\u071e\3\2\2\2"+ + "\u0720\u0721\3\2\2\2\u0721\u0723\3\2\2\2\u0722\u0720\3\2\2\2\u0723\u0724"+ + "\5\u0158\u00ad\2\u0724\u0725\5r:\2\u0725\u0157\3\2\2\2\u0726\u072b\5~"+ + "@\2\u0727\u0728\7Y\2\2\u0728\u072a\5\22\n\2\u0729\u0727\3\2\2\2\u072a"+ + "\u072d\3\2\2\2\u072b\u0729\3\2\2\2\u072b\u072c\3\2\2\2\u072c\u0159\3\2"+ + "\2\2\u072d\u072b\3\2\2\2\u072e\u072f\7\26\2\2\u072f\u0730\5\u00fe\u0080"+ + "\2\u0730\u015b\3\2\2\2\u0731\u0732\7\62\2\2\u0732\u0733\5\u015e\u00b0"+ + "\2\u0733\u0735\5\u00fe\u0080\2\u0734\u0736\5\u0152\u00aa\2\u0735\u0734"+ + "\3\2\2\2\u0735\u0736\3\2\2\2\u0736\u0738\3\2\2\2\u0737\u0739\5\u015a\u00ae"+ + "\2\u0738\u0737\3\2\2\2\u0738\u0739\3\2\2\2\u0739\u015d\3\2\2\2\u073a\u073b"+ + "\7<\2\2\u073b\u073d\5\u0160\u00b1\2\u073c\u073e\7B\2\2\u073d\u073c\3\2"+ + "\2\2\u073d\u073e\3\2\2\2\u073e\u073f\3\2\2\2\u073f\u0740\7=\2\2\u0740"+ + "\u015f\3\2\2\2\u0741\u0746\5\u0162\u00b2\2\u0742\u0743\7B\2\2\u0743\u0745"+ + "\5\u0162\u00b2\2\u0744\u0742\3\2\2\2\u0745\u0748\3\2\2\2\u0746\u0744\3"+ + "\2\2\2\u0746\u0747\3\2\2\2\u0747\u0161\3\2\2\2\u0748\u0746\3\2\2\2\u0749"+ + "\u074b\5\u009eP\2\u074a\u0749\3\2\2\2\u074b\u074e\3\2\2\2\u074c\u074a"+ + "\3\2\2\2\u074c\u074d\3\2\2\2\u074d\u074f\3\2\2\2\u074e\u074c\3\2\2\2\u074f"+ + "\u0750\5v<\2\u0750\u0751\5r:\2\u0751\u0752\7E\2\2\u0752\u0753\5\u01a2"+ + "\u00d2\2\u0753\u0163\3\2\2\2\u0754\u0757\5\u0172\u00ba\2\u0755\u0757\5"+ + "\u019a\u00ce\2\u0756\u0754\3\2\2\2\u0756\u0755\3\2\2\2\u0757\u075b\3\2"+ + "\2\2\u0758\u075a\5\u016c\u00b7\2\u0759\u0758\3\2\2\2\u075a\u075d\3\2\2"+ + "\2\u075b\u0759\3\2\2\2\u075b\u075c\3\2\2\2\u075c\u0165\3\2\2\2\u075d\u075b"+ + "\3\2\2\2\u075e\u077c\5\2\2\2\u075f\u0764\58\35\2\u0760\u0761\7@\2\2\u0761"+ + "\u0763\7A\2\2\u0762\u0760\3\2\2\2\u0763\u0766\3\2\2\2\u0764\u0762\3\2"+ + "\2\2\u0764\u0765\3\2\2\2\u0765\u0767\3\2\2\2\u0766\u0764\3\2\2\2\u0767"+ + "\u0768\7D\2\2\u0768\u0769\7\f\2\2\u0769\u077c\3\2\2\2\u076a\u076b\7\63"+ + "\2\2\u076b\u076c\7D\2\2\u076c\u077c\7\f\2\2\u076d\u077c\7.\2\2\u076e\u076f"+ + "\58\35\2\u076f\u0770\7D\2\2\u0770\u0771\7.\2\2\u0771\u077c\3\2\2\2\u0772"+ + "\u0773\7<\2\2\u0773\u0774\5\u01a2\u00d2\2\u0774\u0775\7=\2\2\u0775\u077c"+ + "\3\2\2\2\u0776\u077c\5\u0178\u00bd\2\u0777\u077c\5\u0180\u00c1\2\u0778"+ + "\u077c\5\u0186\u00c4\2\u0779\u077c\5\u018c\u00c7\2\u077a\u077c\5\u0194"+ + "\u00cb\2\u077b\u075e\3\2\2\2\u077b\u075f\3\2\2\2\u077b\u076a\3\2\2\2\u077b"+ + "\u076d\3\2\2\2\u077b\u076e\3\2\2\2\u077b\u0772\3\2\2\2\u077b\u0776\3\2"+ + "\2\2\u077b\u0777\3\2\2\2\u077b\u0778\3\2\2\2\u077b\u0779\3\2\2\2\u077b"+ + "\u077a\3\2\2\2\u077c\u0167\3\2\2\2\u077d\u077e\3\2\2\2\u077e\u0169\3\2"+ + "\2\2\u077f\u079c\5\2\2\2\u0780\u0785\58\35\2\u0781\u0782\7@\2\2\u0782"+ + "\u0784\7A\2\2\u0783\u0781\3\2\2\2\u0784\u0787\3\2\2\2\u0785\u0783\3\2"+ + "\2\2\u0785\u0786\3\2\2\2\u0786\u0788\3\2\2\2\u0787\u0785\3\2\2\2\u0788"+ + "\u0789\7D\2\2\u0789\u078a\7\f\2\2\u078a\u079c\3\2\2\2\u078b\u078c\7\63"+ + "\2\2\u078c\u078d\7D\2\2\u078d\u079c\7\f\2\2\u078e\u079c\7.\2\2\u078f\u0790"+ + "\58\35\2\u0790\u0791\7D\2\2\u0791\u0792\7.\2\2\u0792\u079c\3\2\2\2\u0793"+ + "\u0794\7<\2\2\u0794\u0795\5\u01a2\u00d2\2\u0795\u0796\7=\2\2\u0796\u079c"+ + "\3\2\2\2\u0797\u079c\5\u0178\u00bd\2\u0798\u079c\5\u0180\u00c1\2\u0799"+ + "\u079c\5\u018c\u00c7\2\u079a\u079c\5\u0194\u00cb\2\u079b\u077f\3\2\2\2"+ + "\u079b\u0780\3\2\2\2\u079b\u078b\3\2\2\2\u079b\u078e\3\2\2\2\u079b\u078f"+ + "\3\2\2\2\u079b\u0793\3\2\2\2\u079b\u0797\3\2\2\2\u079b\u0798\3\2\2\2\u079b"+ + "\u0799\3\2\2\2\u079b\u079a\3\2\2\2\u079c\u016b\3\2\2\2\u079d\u07a3\5\u017a"+ + "\u00be\2\u079e\u07a3\5\u0182\u00c2\2\u079f\u07a3\5\u0188\u00c5\2\u07a0"+ + "\u07a3\5\u018e\u00c8\2\u07a1\u07a3\5\u0196\u00cc\2\u07a2\u079d\3\2\2\2"+ + "\u07a2\u079e\3\2\2\2\u07a2\u079f\3\2\2\2\u07a2\u07a0\3\2\2\2\u07a2\u07a1"+ + "\3\2\2\2\u07a3\u016d\3\2\2\2\u07a4\u07a5\3\2\2\2\u07a5\u016f\3\2\2\2\u07a6"+ + "\u07ab\5\u017a\u00be\2\u07a7\u07ab\5\u0182\u00c2\2\u07a8\u07ab\5\u018e"+ + "\u00c8\2\u07a9\u07ab\5\u0196\u00cc\2\u07aa\u07a6\3\2\2\2\u07aa\u07a7\3"+ + "\2\2\2\u07aa\u07a8\3\2\2\2\u07aa\u07a9\3\2\2\2\u07ab\u0171\3\2\2\2\u07ac"+ + "\u07d5\5\2\2\2\u07ad\u07b2\58\35\2\u07ae\u07af\7@\2\2\u07af\u07b1\7A\2"+ + "\2\u07b0\u07ae\3\2\2\2\u07b1\u07b4\3\2\2\2\u07b2\u07b0\3\2\2\2\u07b2\u07b3"+ + "\3\2\2\2\u07b3\u07b5\3\2\2\2\u07b4\u07b2\3\2\2\2\u07b5\u07b6\7D\2\2\u07b6"+ + "\u07b7\7\f\2\2\u07b7\u07d5\3\2\2\2\u07b8\u07bd\5x=\2\u07b9\u07ba\7@\2"+ + "\2\u07ba\u07bc\7A\2\2\u07bb\u07b9\3\2\2\2\u07bc\u07bf\3\2\2\2\u07bd\u07bb"+ + "\3\2\2\2\u07bd\u07be\3\2\2\2\u07be\u07c0\3\2\2\2\u07bf\u07bd\3\2\2\2\u07c0"+ + "\u07c1\7D\2\2\u07c1\u07c2\7\f\2\2\u07c2\u07d5\3\2\2\2\u07c3\u07c4\7\63"+ + "\2\2\u07c4\u07c5\7D\2\2\u07c5\u07d5\7\f\2\2\u07c6\u07d5\7.\2\2\u07c7\u07c8"+ + "\58\35\2\u07c8\u07c9\7D\2\2\u07c9\u07ca\7.\2\2\u07ca\u07d5\3\2\2\2\u07cb"+ + "\u07cc\7<\2\2\u07cc\u07cd\5\u01a2\u00d2\2\u07cd\u07ce\7=\2\2\u07ce\u07d5"+ + "\3\2\2\2\u07cf\u07d5\5\u017c\u00bf\2\u07d0\u07d5\5\u0184\u00c3\2\u07d1"+ + "\u07d5\5\u018a\u00c6\2\u07d2\u07d5\5\u0190\u00c9\2\u07d3\u07d5\5\u0198"+ + "\u00cd\2\u07d4\u07ac\3\2\2\2\u07d4\u07ad\3\2\2\2\u07d4\u07b8\3\2\2\2\u07d4"+ + "\u07c3\3\2\2\2\u07d4\u07c6\3\2\2\2\u07d4\u07c7\3\2\2\2\u07d4\u07cb\3\2"+ + "\2\2\u07d4\u07cf\3\2\2\2\u07d4\u07d0\3\2\2\2\u07d4\u07d1\3\2\2\2\u07d4"+ + "\u07d2\3\2\2\2\u07d4\u07d3\3\2\2\2\u07d5\u0173\3\2\2\2\u07d6\u07d7\3\2"+ + "\2\2\u07d7\u0175\3\2\2\2\u07d8\u0800\5\2\2\2\u07d9\u07de\58\35\2\u07da"+ + "\u07db\7@\2\2\u07db\u07dd\7A\2\2\u07dc\u07da\3\2\2\2\u07dd\u07e0\3\2\2"+ + "\2\u07de\u07dc\3\2\2\2\u07de\u07df\3\2\2\2\u07df\u07e1\3\2\2\2\u07e0\u07de"+ + "\3\2\2\2\u07e1\u07e2\7D\2\2\u07e2\u07e3\7\f\2\2\u07e3\u0800\3\2\2\2\u07e4"+ + "\u07e9\5x=\2\u07e5\u07e6\7@\2\2\u07e6\u07e8\7A\2\2\u07e7\u07e5\3\2\2\2"+ + "\u07e8\u07eb\3\2\2\2\u07e9\u07e7\3\2\2\2\u07e9\u07ea\3\2\2\2\u07ea\u07ec"+ + "\3\2\2\2\u07eb\u07e9\3\2\2\2\u07ec\u07ed\7D\2\2\u07ed\u07ee\7\f\2\2\u07ee"+ + "\u0800\3\2\2\2\u07ef\u07f0\7\63\2\2\u07f0\u07f1\7D\2\2\u07f1\u0800\7\f"+ + "\2\2\u07f2\u0800\7.\2\2\u07f3\u07f4\58\35\2\u07f4\u07f5\7D\2\2\u07f5\u07f6"+ + "\7.\2\2\u07f6\u0800\3\2\2\2\u07f7\u07f8\7<\2\2\u07f8\u07f9\5\u01a2\u00d2"+ + "\2\u07f9\u07fa\7=\2\2\u07fa\u0800\3\2\2\2\u07fb\u0800\5\u017c\u00bf\2"+ + "\u07fc\u0800\5\u0184\u00c3\2\u07fd\u0800\5\u0190\u00c9\2\u07fe\u0800\5"+ + "\u0198\u00cd\2\u07ff\u07d8\3\2\2\2\u07ff\u07d9\3\2\2\2\u07ff\u07e4\3\2"+ + "\2\2\u07ff\u07ef\3\2\2\2\u07ff\u07f2\3\2\2\2\u07ff\u07f3\3\2\2\2\u07ff"+ + "\u07f7\3\2\2\2\u07ff\u07fb\3\2\2\2\u07ff\u07fc\3\2\2\2\u07ff\u07fd\3\2"+ + "\2\2\u07ff\u07fe\3\2\2\2\u0800\u0177\3\2\2\2\u0801\u0803\7\"\2\2\u0802"+ + "\u0804\5,\27\2\u0803\u0802\3\2\2\2\u0803\u0804\3\2\2\2\u0804\u0808\3\2"+ + "\2\2\u0805\u0807\5\u00e8u\2\u0806\u0805\3\2\2\2\u0807\u080a\3\2\2\2\u0808"+ + "\u0806\3\2\2\2\u0808\u0809\3\2\2\2\u0809\u080b\3\2\2\2\u080a\u0808\3\2"+ + "\2\2\u080b\u0816\7i\2\2\u080c\u0810\7D\2\2\u080d\u080f\5\u00e8u\2\u080e"+ + "\u080d\3\2\2\2\u080f\u0812\3\2\2\2\u0810\u080e\3\2\2\2\u0810\u0811\3\2"+ + "\2\2\u0811\u0813\3\2\2\2\u0812\u0810\3\2\2\2\u0813\u0815\7i\2\2\u0814"+ + "\u080c\3\2\2\2\u0815\u0818\3\2\2\2\u0816\u0814\3\2\2\2\u0816\u0817\3\2"+ + "\2\2\u0817\u081a\3\2\2\2\u0818\u0816\3\2\2\2\u0819\u081b\5\u017e\u00c0"+ + "\2\u081a\u0819\3\2\2\2\u081a\u081b\3\2\2\2\u081b\u081c\3\2\2\2\u081c\u081e"+ + "\7<\2\2\u081d\u081f\5\u0192\u00ca\2\u081e\u081d\3\2\2\2\u081e\u081f\3"+ + "\2\2\2\u081f\u0820\3\2\2\2\u0820\u0822\7=\2\2\u0821\u0823\5d\63\2\u0822"+ + "\u0821\3\2\2\2\u0822\u0823\3\2\2\2\u0823\u0855\3\2\2\2\u0824\u0825\5<"+ + "\37\2\u0825\u0826\7D\2\2\u0826\u0828\7\"\2\2\u0827\u0829\5,\27\2\u0828"+ + "\u0827\3\2\2\2\u0828\u0829\3\2\2\2\u0829\u082d\3\2\2\2\u082a\u082c\5\u00e8"+ + "u\2\u082b\u082a\3\2\2\2\u082c\u082f\3\2\2\2\u082d\u082b\3\2\2\2\u082d"+ + "\u082e\3\2\2\2\u082e\u0830\3\2\2\2\u082f\u082d\3\2\2\2\u0830\u0832\7i"+ + "\2\2\u0831\u0833\5\u017e\u00c0\2\u0832\u0831\3\2\2\2\u0832\u0833\3\2\2"+ + "\2\u0833\u0834\3\2\2\2\u0834\u0836\7<\2\2\u0835\u0837\5\u0192\u00ca\2"+ + "\u0836\u0835\3\2\2\2\u0836\u0837\3\2\2\2\u0837\u0838\3\2\2\2\u0838\u083a"+ + "\7=\2\2\u0839\u083b\5d\63\2\u083a\u0839\3\2\2\2\u083a\u083b\3\2\2\2\u083b"+ + "\u0855\3\2\2\2\u083c\u083d\5\u0164\u00b3\2\u083d\u083e\7D\2\2\u083e\u0840"+ + "\7\"\2\2\u083f\u0841\5,\27\2\u0840\u083f\3\2\2\2\u0840\u0841\3\2\2\2\u0841"+ + "\u0845\3\2\2\2\u0842\u0844\5\u00e8u\2\u0843\u0842\3\2\2\2\u0844\u0847"+ + "\3\2\2\2\u0845\u0843\3\2\2\2\u0845\u0846\3\2\2\2\u0846\u0848\3\2\2\2\u0847"+ + "\u0845\3\2\2\2\u0848\u084a\7i\2\2\u0849\u084b\5\u017e\u00c0\2\u084a\u0849"+ + "\3\2\2\2\u084a\u084b\3\2\2\2\u084b\u084c\3\2\2\2\u084c\u084e\7<\2\2\u084d"+ + "\u084f\5\u0192\u00ca\2\u084e\u084d\3\2\2\2\u084e\u084f\3\2\2\2\u084f\u0850"+ + "\3\2\2\2\u0850\u0852\7=\2\2\u0851\u0853\5d\63\2\u0852\u0851\3\2\2\2\u0852"+ + "\u0853\3\2\2\2\u0853\u0855\3\2\2\2\u0854\u0801\3\2\2\2\u0854\u0824\3\2"+ + "\2\2\u0854\u083c\3\2\2\2\u0855\u0179\3\2\2\2\u0856\u0857\7D\2\2\u0857"+ + "\u0859\7\"\2\2\u0858\u085a\5,\27\2\u0859\u0858\3\2\2\2\u0859\u085a\3\2"+ + "\2\2\u085a\u085e\3\2\2\2\u085b\u085d\5\u00e8u\2\u085c\u085b\3\2\2\2\u085d"+ + "\u0860\3\2\2\2\u085e\u085c\3\2\2\2\u085e\u085f\3\2\2\2\u085f\u0861\3\2"+ + "\2\2\u0860\u085e\3\2\2\2\u0861\u0863\7i\2\2\u0862\u0864\5\u017e\u00c0"+ + "\2\u0863\u0862\3\2\2\2\u0863\u0864\3\2\2\2\u0864\u0865\3\2\2\2\u0865\u0867"+ + "\7<\2\2\u0866\u0868\5\u0192\u00ca\2\u0867\u0866\3\2\2\2\u0867\u0868\3"+ + "\2\2\2\u0868\u0869\3\2\2\2\u0869\u086b\7=\2\2\u086a\u086c\5d\63\2\u086b"+ + "\u086a\3\2\2\2\u086b\u086c\3\2\2\2\u086c\u017b\3\2\2\2\u086d\u086f\7\""+ + "\2\2\u086e\u0870\5,\27\2\u086f\u086e\3\2\2\2\u086f\u0870\3\2\2\2\u0870"+ + "\u0874\3\2\2\2\u0871\u0873\5\u00e8u\2\u0872\u0871\3\2\2\2\u0873\u0876"+ + "\3\2\2\2\u0874\u0872\3\2\2\2\u0874\u0875\3\2\2\2\u0875\u0877\3\2\2\2\u0876"+ + "\u0874\3\2\2\2\u0877\u0882\7i\2\2\u0878\u087c\7D\2\2\u0879\u087b\5\u00e8"+ + "u\2\u087a\u0879\3\2\2\2\u087b\u087e\3\2\2\2\u087c\u087a\3\2\2\2\u087c"+ + "\u087d\3\2\2\2\u087d\u087f\3\2\2\2\u087e\u087c\3\2\2\2\u087f\u0881\7i"+ + "\2\2\u0880\u0878\3\2\2\2\u0881\u0884\3\2\2\2\u0882\u0880\3\2\2\2\u0882"+ + "\u0883\3\2\2\2\u0883\u0886\3\2\2\2\u0884\u0882\3\2\2\2\u0885\u0887\5\u017e"+ + "\u00c0\2\u0886\u0885\3\2\2\2\u0886\u0887\3\2\2\2\u0887\u0888\3\2\2\2\u0888"+ + "\u088a\7<\2\2\u0889\u088b\5\u0192\u00ca\2\u088a\u0889\3\2\2\2\u088a\u088b"+ + "\3\2\2\2\u088b\u088c\3\2\2\2\u088c\u088e\7=\2\2\u088d\u088f\5d\63\2\u088e"+ + "\u088d\3\2\2\2\u088e\u088f\3\2\2\2\u088f\u08a9\3\2\2\2\u0890\u0891\5<"+ + "\37\2\u0891\u0892\7D\2\2\u0892\u0894\7\"\2\2\u0893\u0895\5,\27\2\u0894"+ + "\u0893\3\2\2\2\u0894\u0895\3\2\2\2\u0895\u0899\3\2\2\2\u0896\u0898\5\u00e8"+ + "u\2\u0897\u0896\3\2\2\2\u0898\u089b\3\2\2\2\u0899\u0897\3\2\2\2\u0899"+ + "\u089a\3\2\2\2\u089a\u089c\3\2\2\2\u089b\u0899\3\2\2\2\u089c\u089e\7i"+ + "\2\2\u089d\u089f\5\u017e\u00c0\2\u089e\u089d\3\2\2\2\u089e\u089f\3\2\2"+ + "\2\u089f\u08a0\3\2\2\2\u08a0\u08a2\7<\2\2\u08a1\u08a3\5\u0192\u00ca\2"+ + "\u08a2\u08a1\3\2\2\2\u08a2\u08a3\3\2\2\2\u08a3\u08a4\3\2\2\2\u08a4\u08a6"+ + "\7=\2\2\u08a5\u08a7\5d\63\2\u08a6\u08a5\3\2\2\2\u08a6\u08a7\3\2\2\2\u08a7"+ + "\u08a9\3\2\2\2\u08a8\u086d\3\2\2\2\u08a8\u0890\3\2\2\2\u08a9\u017d\3\2"+ + "\2\2\u08aa\u08ae\5,\27\2\u08ab\u08ac\7G\2\2\u08ac\u08ae\7F\2\2\u08ad\u08aa"+ + "\3\2\2\2\u08ad\u08ab\3\2\2\2\u08ae\u017f\3\2\2\2\u08af\u08b0\5\u0164\u00b3"+ + "\2\u08b0\u08b1\7D\2\2\u08b1\u08b2\7i\2\2\u08b2\u08bd\3\2\2\2\u08b3\u08b4"+ + "\7+\2\2\u08b4\u08b5\7D\2\2\u08b5\u08bd\7i\2\2\u08b6\u08b7\58\35\2\u08b7"+ + "\u08b8\7D\2\2\u08b8\u08b9\7+\2\2\u08b9\u08ba\7D\2\2\u08ba\u08bb\7i\2\2"+ + "\u08bb\u08bd\3\2\2\2\u08bc\u08af\3\2\2\2\u08bc\u08b3\3\2\2\2\u08bc\u08b6"+ + "\3\2\2\2\u08bd\u0181\3\2\2\2\u08be\u08bf\7D\2\2\u08bf\u08c0\7i\2\2\u08c0"+ + "\u0183\3\2\2\2\u08c1\u08c2\7+\2\2\u08c2\u08c3\7D\2\2\u08c3\u08cb\7i\2"+ + "\2\u08c4\u08c5\58\35\2\u08c5\u08c6\7D\2\2\u08c6\u08c7\7+\2\2\u08c7\u08c8"+ + "\7D\2\2\u08c8\u08c9\7i\2\2\u08c9\u08cb\3\2\2\2\u08ca\u08c1\3\2\2\2\u08ca"+ + "\u08c4\3\2\2\2\u08cb\u0185\3\2\2\2\u08cc\u08cd\5<\37\2\u08cd\u08ce\7@"+ + "\2\2\u08ce\u08cf\5\u01a2\u00d2\2\u08cf\u08d0\7A\2\2\u08d0\u08d7\3\2\2"+ + "\2\u08d1\u08d2\5\u016a\u00b6\2\u08d2\u08d3\7@\2\2\u08d3\u08d4\5\u01a2"+ + "\u00d2\2\u08d4\u08d5\7A\2\2\u08d5\u08d7\3\2\2\2\u08d6\u08cc\3\2\2\2\u08d6"+ + "\u08d1\3\2\2\2\u08d7\u08df\3\2\2\2\u08d8\u08d9\5\u0168\u00b5\2\u08d9\u08da"+ + "\7@\2\2\u08da\u08db\5\u01a2\u00d2\2\u08db\u08dc\7A\2\2\u08dc\u08de\3\2"+ + "\2\2\u08dd\u08d8\3\2\2\2\u08de\u08e1\3\2\2\2\u08df\u08dd\3\2\2\2\u08df"+ + "\u08e0\3\2\2\2\u08e0\u0187\3\2\2\2\u08e1\u08df\3\2\2\2\u08e2\u08e3\5\u0170"+ + "\u00b9\2\u08e3\u08e4\7@\2\2\u08e4\u08e5\5\u01a2\u00d2\2\u08e5\u08e6\7"+ + "A\2\2\u08e6\u08ee\3\2\2\2\u08e7\u08e8\5\u016e\u00b8\2\u08e8\u08e9\7@\2"+ + "\2\u08e9\u08ea\5\u01a2\u00d2\2\u08ea\u08eb\7A\2\2\u08eb\u08ed\3\2\2\2"+ + "\u08ec\u08e7\3\2\2\2\u08ed\u08f0\3\2\2\2\u08ee\u08ec\3\2\2\2\u08ee\u08ef"+ + "\3\2\2\2\u08ef\u0189\3\2\2\2\u08f0\u08ee\3\2\2\2\u08f1\u08f2\5<\37\2\u08f2"+ + "\u08f3\7@\2\2\u08f3\u08f4\5\u01a2\u00d2\2\u08f4\u08f5\7A\2\2\u08f5\u08fc"+ + "\3\2\2\2\u08f6\u08f7\5\u0176\u00bc\2\u08f7\u08f8\7@\2\2\u08f8\u08f9\5"+ + "\u01a2\u00d2\2\u08f9\u08fa\7A\2\2\u08fa\u08fc\3\2\2\2\u08fb\u08f1\3\2"+ + "\2\2\u08fb\u08f6\3\2\2\2\u08fc\u0904\3\2\2\2\u08fd\u08fe\5\u0174\u00bb"+ + "\2\u08fe\u08ff\7@\2\2\u08ff\u0900\5\u01a2\u00d2\2\u0900\u0901\7A\2\2\u0901"+ + "\u0903\3\2\2\2\u0902\u08fd\3\2\2\2\u0903\u0906\3\2\2\2\u0904\u0902\3\2"+ + "\2\2\u0904\u0905\3\2\2\2\u0905\u018b\3\2\2\2\u0906\u0904\3\2\2\2\u0907"+ + "\u0908\5> \2\u0908\u090a\7<\2\2\u0909\u090b\5\u0192\u00ca\2\u090a\u0909"+ + "\3\2\2\2\u090a\u090b\3\2\2\2\u090b\u090c\3\2\2\2\u090c\u090d\7=\2\2\u090d"+ + "\u094c\3\2\2\2\u090e\u090f\58\35\2\u090f\u0911\7D\2\2\u0910\u0912\5,\27"+ + "\2\u0911\u0910\3\2\2\2\u0911\u0912\3\2\2\2\u0912\u0913\3\2\2\2\u0913\u0914"+ + "\7i\2\2\u0914\u0916\7<\2\2\u0915\u0917\5\u0192\u00ca\2\u0916\u0915\3\2"+ + "\2\2\u0916\u0917\3\2\2\2\u0917\u0918\3\2\2\2\u0918\u0919\7=\2\2\u0919"+ + "\u094c\3\2\2\2\u091a\u091b\5<\37\2\u091b\u091d\7D\2\2\u091c\u091e\5,\27"+ + "\2\u091d\u091c\3\2\2\2\u091d\u091e\3\2\2\2\u091e\u091f\3\2\2\2\u091f\u0920"+ + "\7i\2\2\u0920\u0922\7<\2\2\u0921\u0923\5\u0192\u00ca\2\u0922\u0921\3\2"+ + "\2\2\u0922\u0923\3\2\2\2\u0923\u0924\3\2\2\2\u0924\u0925\7=\2\2\u0925"+ + "\u094c\3\2\2\2\u0926\u0927\5\u0164\u00b3\2\u0927\u0929\7D\2\2\u0928\u092a"+ + "\5,\27\2\u0929\u0928\3\2\2\2\u0929\u092a\3\2\2\2\u092a\u092b\3\2\2\2\u092b"+ + "\u092c\7i\2\2\u092c\u092e\7<\2\2\u092d\u092f\5\u0192\u00ca\2\u092e\u092d"+ + "\3\2\2\2\u092e\u092f\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0931\7=\2\2\u0931"+ + "\u094c\3\2\2\2\u0932\u0933\7+\2\2\u0933\u0935\7D\2\2\u0934\u0936\5,\27"+ + "\2\u0935\u0934\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u0937\3\2\2\2\u0937\u0938"+ + "\7i\2\2\u0938\u093a\7<\2\2\u0939\u093b\5\u0192\u00ca\2\u093a\u0939\3\2"+ + "\2\2\u093a\u093b\3\2\2\2\u093b\u093c\3\2\2\2\u093c\u094c\7=\2\2\u093d"+ + "\u093e\58\35\2\u093e\u093f\7D\2\2\u093f\u0940\7+\2\2\u0940\u0942\7D\2"+ + "\2\u0941\u0943\5,\27\2\u0942\u0941\3\2\2\2\u0942\u0943\3\2\2\2\u0943\u0944"+ + "\3\2\2\2\u0944\u0945\7i\2\2\u0945\u0947\7<\2\2\u0946\u0948\5\u0192\u00ca"+ + "\2\u0947\u0946\3\2\2\2\u0947\u0948\3\2\2\2\u0948\u0949\3\2\2\2\u0949\u094a"+ + "\7=\2\2\u094a\u094c\3\2\2\2\u094b\u0907\3\2\2\2\u094b\u090e\3\2\2\2\u094b"+ + "\u091a\3\2\2\2\u094b\u0926\3\2\2\2\u094b\u0932\3\2\2\2\u094b\u093d\3\2"+ + "\2\2\u094c\u018d\3\2\2\2\u094d\u094f\7D\2\2\u094e\u0950\5,\27\2\u094f"+ + "\u094e\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0951\3\2\2\2\u0951\u0952\7i"+ + "\2\2\u0952\u0954\7<\2\2\u0953\u0955\5\u0192\u00ca\2\u0954\u0953\3\2\2"+ + "\2\u0954\u0955\3\2\2\2\u0955\u0956\3\2\2\2\u0956\u0957\7=\2\2\u0957\u018f"+ + "\3\2\2\2\u0958\u0959\5> \2\u0959\u095b\7<\2\2\u095a\u095c\5\u0192\u00ca"+ + "\2\u095b\u095a\3\2\2\2\u095b\u095c\3\2\2\2\u095c\u095d\3\2\2\2\u095d\u095e"+ + "\7=\2\2\u095e\u0991\3\2\2\2\u095f\u0960\58\35\2\u0960\u0962\7D\2\2\u0961"+ + "\u0963\5,\27\2\u0962\u0961\3\2\2\2\u0962\u0963\3\2\2\2\u0963\u0964\3\2"+ + "\2\2\u0964\u0965\7i\2\2\u0965\u0967\7<\2\2\u0966\u0968\5\u0192\u00ca\2"+ + "\u0967\u0966\3\2\2\2\u0967\u0968\3\2\2"; + private static final String _serializedATNSegment1 = + "\2\u0968\u0969\3\2\2\2\u0969\u096a\7=\2\2\u096a\u0991\3\2\2\2\u096b\u096c"+ + "\5<\37\2\u096c\u096e\7D\2\2\u096d\u096f\5,\27\2\u096e\u096d\3\2\2\2\u096e"+ + "\u096f\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0971\7i\2\2\u0971\u0973\7<\2"+ + "\2\u0972\u0974\5\u0192\u00ca\2\u0973\u0972\3\2\2\2\u0973\u0974\3\2\2\2"+ + "\u0974\u0975\3\2\2\2\u0975\u0976\7=\2\2\u0976\u0991\3\2\2\2\u0977\u0978"+ + "\7+\2\2\u0978\u097a\7D\2\2\u0979\u097b\5,\27\2\u097a\u0979\3\2\2\2\u097a"+ + "\u097b\3\2\2\2\u097b\u097c\3\2\2\2\u097c\u097d\7i\2\2\u097d\u097f\7<\2"+ + "\2\u097e\u0980\5\u0192\u00ca\2\u097f\u097e\3\2\2\2\u097f\u0980\3\2\2\2"+ + "\u0980\u0981\3\2\2\2\u0981\u0991\7=\2\2\u0982\u0983\58\35\2\u0983\u0984"+ + "\7D\2\2\u0984\u0985\7+\2\2\u0985\u0987\7D\2\2\u0986\u0988\5,\27\2\u0987"+ + "\u0986\3\2\2\2\u0987\u0988\3\2\2\2\u0988\u0989\3\2\2\2\u0989\u098a\7i"+ + "\2\2\u098a\u098c\7<\2\2\u098b\u098d\5\u0192\u00ca\2\u098c\u098b\3\2\2"+ + "\2\u098c\u098d\3\2\2\2\u098d\u098e\3\2\2\2\u098e\u098f\7=\2\2\u098f\u0991"+ + "\3\2\2\2\u0990\u0958\3\2\2\2\u0990\u095f\3\2\2\2\u0990\u096b\3\2\2\2\u0990"+ + "\u0977\3\2\2\2\u0990\u0982\3\2\2\2\u0991\u0191\3\2\2\2\u0992\u0997\5\u01a2"+ + "\u00d2\2\u0993\u0994\7C\2\2\u0994\u0996\5\u01a2\u00d2\2\u0995\u0993\3"+ + "\2\2\2\u0996\u0999\3\2\2\2\u0997\u0995\3\2\2\2\u0997\u0998\3\2\2\2\u0998"+ + "\u0193\3\2\2\2\u0999\u0997\3\2\2\2\u099a\u099b\5<\37\2\u099b\u099d\7]"+ + "\2\2\u099c\u099e\5,\27\2\u099d\u099c\3\2\2\2\u099d\u099e\3\2\2\2\u099e"+ + "\u099f\3\2\2\2\u099f\u09a0\7i\2\2\u09a0\u09ca\3\2\2\2\u09a1\u09a2\5\16"+ + "\b\2\u09a2\u09a4\7]\2\2\u09a3\u09a5\5,\27\2\u09a4\u09a3\3\2\2\2\u09a4"+ + "\u09a5\3\2\2\2\u09a5\u09a6\3\2\2\2\u09a6\u09a7\7i\2\2\u09a7\u09ca\3\2"+ + "\2\2\u09a8\u09a9\5\u0164\u00b3\2\u09a9\u09ab\7]\2\2\u09aa\u09ac\5,\27"+ + "\2\u09ab\u09aa\3\2\2\2\u09ab\u09ac\3\2\2\2\u09ac\u09ad\3\2\2\2\u09ad\u09ae"+ + "\7i\2\2\u09ae\u09ca\3\2\2\2\u09af\u09b0\7+\2\2\u09b0\u09b2\7]\2\2\u09b1"+ + "\u09b3\5,\27\2\u09b2\u09b1\3\2\2\2\u09b2\u09b3\3\2\2\2\u09b3\u09b4\3\2"+ + "\2\2\u09b4\u09ca\7i\2\2\u09b5\u09b6\58\35\2\u09b6\u09b7\7D\2\2\u09b7\u09b8"+ + "\7+\2\2\u09b8\u09ba\7]\2\2\u09b9\u09bb\5,\27\2\u09ba\u09b9\3\2\2\2\u09ba"+ + "\u09bb\3\2\2\2\u09bb\u09bc\3\2\2\2\u09bc\u09bd\7i\2\2\u09bd\u09ca\3\2"+ + "\2\2\u09be\u09bf\5\22\n\2\u09bf\u09c1\7]\2\2\u09c0\u09c2\5,\27\2\u09c1"+ + "\u09c0\3\2\2\2\u09c1\u09c2\3\2\2\2\u09c2\u09c3\3\2\2\2\u09c3\u09c4\7\""+ + "\2\2\u09c4\u09ca\3\2\2\2\u09c5\u09c6\5 \21\2\u09c6\u09c7\7]\2\2\u09c7"+ + "\u09c8\7\"\2\2\u09c8\u09ca\3\2\2\2\u09c9\u099a\3\2\2\2\u09c9\u09a1\3\2"+ + "\2\2\u09c9\u09a8\3\2\2\2\u09c9\u09af\3\2\2\2\u09c9\u09b5\3\2\2\2\u09c9"+ + "\u09be\3\2\2\2\u09c9\u09c5\3\2\2\2\u09ca\u0195\3\2\2\2\u09cb\u09cd\7]"+ + "\2\2\u09cc\u09ce\5,\27\2\u09cd\u09cc\3\2\2\2\u09cd\u09ce\3\2\2\2\u09ce"+ + "\u09cf\3\2\2\2\u09cf\u09d0\7i\2\2\u09d0\u0197\3\2\2\2\u09d1\u09d2\5<\37"+ + "\2\u09d2\u09d4\7]\2\2\u09d3\u09d5\5,\27\2\u09d4\u09d3\3\2\2\2\u09d4\u09d5"+ + "\3\2\2\2\u09d5\u09d6\3\2\2\2\u09d6\u09d7\7i\2\2\u09d7\u09fa\3\2\2\2\u09d8"+ + "\u09d9\5\16\b\2\u09d9\u09db\7]\2\2\u09da\u09dc\5,\27\2\u09db\u09da\3\2"+ + "\2\2\u09db\u09dc\3\2\2\2\u09dc\u09dd\3\2\2\2\u09dd\u09de\7i\2\2\u09de"+ + "\u09fa\3\2\2\2\u09df\u09e0\7+\2\2\u09e0\u09e2\7]\2\2\u09e1\u09e3\5,\27"+ + "\2\u09e2\u09e1\3\2\2\2\u09e2\u09e3\3\2\2\2\u09e3\u09e4\3\2\2\2\u09e4\u09fa"+ + "\7i\2\2\u09e5\u09e6\58\35\2\u09e6\u09e7\7D\2\2\u09e7\u09e8\7+\2\2\u09e8"+ + "\u09ea\7]\2\2\u09e9\u09eb\5,\27\2\u09ea\u09e9\3\2\2\2\u09ea\u09eb\3\2"+ + "\2\2\u09eb\u09ec\3\2\2\2\u09ec\u09ed\7i\2\2\u09ed\u09fa\3\2\2\2\u09ee"+ + "\u09ef\5\22\n\2\u09ef\u09f1\7]\2\2\u09f0\u09f2\5,\27\2\u09f1\u09f0\3\2"+ + "\2\2\u09f1\u09f2\3\2\2\2\u09f2\u09f3\3\2\2\2\u09f3\u09f4\7\"\2\2\u09f4"+ + "\u09fa\3\2\2\2\u09f5\u09f6\5 \21\2\u09f6\u09f7\7]\2\2\u09f7\u09f8\7\""+ + "\2\2\u09f8\u09fa\3\2\2\2\u09f9\u09d1\3\2\2\2\u09f9\u09d8\3\2\2\2\u09f9"+ + "\u09df\3\2\2\2\u09f9\u09e5\3\2\2\2\u09f9\u09ee\3\2\2\2\u09f9\u09f5\3\2"+ + "\2\2\u09fa\u0199\3\2\2\2\u09fb\u09fc\7\"\2\2\u09fc\u09fd\5\6\4\2\u09fd"+ + "\u09ff\5\u019c\u00cf\2\u09fe\u0a00\5\"\22\2\u09ff\u09fe\3\2\2\2\u09ff"+ + "\u0a00\3\2\2\2\u0a00\u0a12\3\2\2\2\u0a01\u0a02\7\"\2\2\u0a02\u0a03\5\20"+ + "\t\2\u0a03\u0a05\5\u019c\u00cf\2\u0a04\u0a06\5\"\22\2\u0a05\u0a04\3\2"+ + "\2\2\u0a05\u0a06\3\2\2\2\u0a06\u0a12\3\2\2\2\u0a07\u0a08\7\"\2\2\u0a08"+ + "\u0a09\5\6\4\2\u0a09\u0a0a\5\"\22\2\u0a0a\u0a0b\5\u00fa~\2\u0a0b\u0a12"+ + "\3\2\2\2\u0a0c\u0a0d\7\"\2\2\u0a0d\u0a0e\5\20\t\2\u0a0e\u0a0f\5\"\22\2"+ + "\u0a0f\u0a10\5\u00fa~\2\u0a10\u0a12\3\2\2\2\u0a11\u09fb\3\2\2\2\u0a11"+ + "\u0a01\3\2\2\2\u0a11\u0a07\3\2\2\2\u0a11\u0a0c\3\2\2\2\u0a12\u019b\3\2"+ + "\2\2\u0a13\u0a17\5\u019e\u00d0\2\u0a14\u0a16\5\u019e\u00d0\2\u0a15\u0a14"+ + "\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a15\3\2\2\2\u0a17\u0a18\3\2\2\2\u0a18"+ + "\u019d\3\2\2\2\u0a19\u0a17\3\2\2\2\u0a1a\u0a1c\5\u00e8u\2\u0a1b\u0a1a"+ + "\3\2\2\2\u0a1c\u0a1f\3\2\2\2\u0a1d\u0a1b\3\2\2\2\u0a1d\u0a1e\3\2\2\2\u0a1e"+ + "\u0a20\3\2\2\2\u0a1f\u0a1d\3\2\2\2\u0a20\u0a21\7@\2\2\u0a21\u0a22\5\u01a2"+ + "\u00d2\2\u0a22\u0a23\7A\2\2\u0a23\u019f\3\2\2\2\u0a24\u0a25\5\u01a2\u00d2"+ + "\2\u0a25\u01a1\3\2\2\2\u0a26\u0a29\5\u01a4\u00d3\2\u0a27\u0a29\5\u01ac"+ + "\u00d7\2\u0a28\u0a26\3\2\2\2\u0a28\u0a27\3\2\2\2\u0a29\u01a3\3\2\2\2\u0a2a"+ + "\u0a2b\5\u01a6\u00d4\2\u0a2b\u0a2c\7\\\2\2\u0a2c\u0a2d\5\u01aa\u00d6\2"+ + "\u0a2d\u01a5\3\2\2\2\u0a2e\u0a35\7i\2\2\u0a2f\u0a31\7<\2\2\u0a30\u0a32"+ + "\5\u0098M\2\u0a31\u0a30\3\2\2\2\u0a31\u0a32\3\2\2\2\u0a32\u0a33\3\2\2"+ + "\2\u0a33\u0a35\7=\2\2\u0a34\u0a2e\3\2\2\2\u0a34\u0a2f\3\2\2\2\u0a35\u01a7"+ + "\3\2\2\2\u0a36\u0a3b\7i\2\2\u0a37\u0a38\7C\2\2\u0a38\u0a3a\7i\2\2\u0a39"+ + "\u0a37\3\2\2\2\u0a3a\u0a3d\3\2\2\2\u0a3b\u0a39\3\2\2\2\u0a3b\u0a3c\3\2"+ + "\2\2\u0a3c\u01a9\3\2\2\2\u0a3d\u0a3b\3\2\2\2\u0a3e\u0a41\5\u01a2\u00d2"+ + "\2\u0a3f\u0a41\5\u00fe\u0080\2\u0a40\u0a3e\3\2\2\2\u0a40\u0a3f\3\2\2\2"+ + "\u0a41\u01ab\3\2\2\2\u0a42\u0a45\5\u01b4\u00db\2\u0a43\u0a45\5\u01ae\u00d8"+ + "\2\u0a44\u0a42\3\2\2\2\u0a44\u0a43\3\2\2\2\u0a45\u01ad\3\2\2\2\u0a46\u0a47"+ + "\5\u01b0\u00d9\2\u0a47\u0a48\5\u01b2\u00da\2\u0a48\u0a49\5\u01a2\u00d2"+ + "\2\u0a49\u01af\3\2\2\2\u0a4a\u0a4e\5<\37\2\u0a4b\u0a4e\5\u0180\u00c1\2"+ + "\u0a4c\u0a4e\5\u0186\u00c4\2\u0a4d\u0a4a\3\2\2\2\u0a4d\u0a4b\3\2\2\2\u0a4d"+ + "\u0a4c\3\2\2\2\u0a4e\u01b1\3\2\2\2\u0a4f\u0a50\t\5\2\2\u0a50\u01b3\3\2"+ + "\2\2\u0a51\u0a59\5\u01b6\u00dc\2\u0a52\u0a53\5\u01b6\u00dc\2\u0a53\u0a54"+ + "\7J\2\2\u0a54\u0a55\5\u01a2\u00d2\2\u0a55\u0a56\7K\2\2\u0a56\u0a57\5\u01b4"+ + "\u00db\2\u0a57\u0a59\3\2\2\2\u0a58\u0a51\3\2\2\2\u0a58\u0a52\3\2\2\2\u0a59"+ + "\u01b5\3\2\2\2\u0a5a\u0a5b\b\u00dc\1\2\u0a5b\u0a5c\5\u01b8\u00dd\2\u0a5c"+ + "\u0a62\3\2\2\2\u0a5d\u0a5e\f\3\2\2\u0a5e\u0a5f\7Q\2\2\u0a5f\u0a61\5\u01b8"+ + "\u00dd\2\u0a60\u0a5d\3\2\2\2\u0a61\u0a64\3\2\2\2\u0a62\u0a60\3\2\2\2\u0a62"+ + "\u0a63\3\2\2\2\u0a63\u01b7\3\2\2\2\u0a64\u0a62\3\2\2\2\u0a65\u0a66\b\u00dd"+ + "\1\2\u0a66\u0a67\5\u01ba\u00de\2\u0a67\u0a6d\3\2\2\2\u0a68\u0a69\f\3\2"+ + "\2\u0a69\u0a6a\7P\2\2\u0a6a\u0a6c\5\u01ba\u00de\2\u0a6b\u0a68\3\2\2\2"+ + "\u0a6c\u0a6f\3\2\2\2\u0a6d\u0a6b\3\2\2\2\u0a6d\u0a6e\3\2\2\2\u0a6e\u01b9"+ + "\3\2\2\2\u0a6f\u0a6d\3\2\2\2\u0a70\u0a71\b\u00de\1\2\u0a71\u0a72\5\u01bc"+ + "\u00df\2\u0a72\u0a78\3\2\2\2\u0a73\u0a74\f\3\2\2\u0a74\u0a75\7Y\2\2\u0a75"+ + "\u0a77\5\u01bc\u00df\2\u0a76\u0a73\3\2\2\2\u0a77\u0a7a\3\2\2\2\u0a78\u0a76"+ + "\3\2\2\2\u0a78\u0a79\3\2\2\2\u0a79\u01bb\3\2\2\2\u0a7a\u0a78\3\2\2\2\u0a7b"+ + "\u0a7c\b\u00df\1\2\u0a7c\u0a7d\5\u01be\u00e0\2\u0a7d\u0a83\3\2\2\2\u0a7e"+ + "\u0a7f\f\3\2\2\u0a7f\u0a80\7Z\2\2\u0a80\u0a82\5\u01be\u00e0\2\u0a81\u0a7e"+ + "\3\2\2\2\u0a82\u0a85\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a83\u0a84\3\2\2\2\u0a84"+ + "\u01bd\3\2\2\2\u0a85\u0a83\3\2\2\2\u0a86\u0a87\b\u00e0\1\2\u0a87\u0a88"+ + "\5\u01c0\u00e1\2\u0a88\u0a8e\3\2\2\2\u0a89\u0a8a\f\3\2\2\u0a8a\u0a8b\7"+ + "X\2\2\u0a8b\u0a8d\5\u01c0\u00e1\2\u0a8c\u0a89\3\2\2\2\u0a8d\u0a90\3\2"+ + "\2\2\u0a8e\u0a8c\3\2\2\2\u0a8e\u0a8f\3\2\2\2\u0a8f\u01bf\3\2\2\2\u0a90"+ + "\u0a8e\3\2\2\2\u0a91\u0a92\b\u00e1\1\2\u0a92\u0a93\5\u01c2\u00e2\2\u0a93"+ + "\u0a9c\3\2\2\2\u0a94\u0a95\f\4\2\2\u0a95\u0a96\7L\2\2\u0a96\u0a9b\5\u01c2"+ + "\u00e2\2\u0a97\u0a98\f\3\2\2\u0a98\u0a99\7O\2\2\u0a99\u0a9b\5\u01c2\u00e2"+ + "\2\u0a9a\u0a94\3\2\2\2\u0a9a\u0a97\3\2\2\2\u0a9b\u0a9e\3\2\2\2\u0a9c\u0a9a"+ + "\3\2\2\2\u0a9c\u0a9d\3\2\2\2\u0a9d\u01c1\3\2\2\2\u0a9e\u0a9c\3\2\2\2\u0a9f"+ + "\u0aa0\b\u00e2\1\2\u0aa0\u0aa1\5\u01c4\u00e3\2\u0aa1\u0ab3\3\2\2\2\u0aa2"+ + "\u0aa3\f\7\2\2\u0aa3\u0aa4\7G\2\2\u0aa4\u0ab2\5\u01c4\u00e3\2\u0aa5\u0aa6"+ + "\f\6\2\2\u0aa6\u0aa7\7F\2\2\u0aa7\u0ab2\5\u01c4\u00e3\2\u0aa8\u0aa9\f"+ + "\5\2\2\u0aa9\u0aaa\7M\2\2\u0aaa\u0ab2\5\u01c4\u00e3\2\u0aab\u0aac\f\4"+ + "\2\2\u0aac\u0aad\7N\2\2\u0aad\u0ab2\5\u01c4\u00e3\2\u0aae\u0aaf\f\3\2"+ + "\2\u0aaf\u0ab0\7\35\2\2\u0ab0\u0ab2\5\16\b\2\u0ab1\u0aa2\3\2\2\2\u0ab1"+ + "\u0aa5\3\2\2\2\u0ab1\u0aa8\3\2\2\2\u0ab1\u0aab\3\2\2\2\u0ab1\u0aae\3\2"+ + "\2\2\u0ab2\u0ab5\3\2\2\2\u0ab3\u0ab1\3\2\2\2\u0ab3\u0ab4\3\2\2\2\u0ab4"+ + "\u01c3\3\2\2\2\u0ab5\u0ab3\3\2\2\2\u0ab6\u0ab7\b\u00e3\1\2\u0ab7\u0ab8"+ + "\5\u01c6\u00e4\2\u0ab8\u0ac8\3\2\2\2\u0ab9\u0aba\f\5\2\2\u0aba\u0abb\7"+ + "G\2\2\u0abb\u0abc\7G\2\2\u0abc\u0ac7\5\u01c6\u00e4\2\u0abd\u0abe\f\4\2"+ + "\2\u0abe\u0abf\7F\2\2\u0abf\u0ac0\7F\2\2\u0ac0\u0ac7\5\u01c6\u00e4\2\u0ac1"+ + "\u0ac2\f\3\2\2\u0ac2\u0ac3\7F\2\2\u0ac3\u0ac4\7F\2\2\u0ac4\u0ac5\7F\2"+ + "\2\u0ac5\u0ac7\5\u01c6\u00e4\2\u0ac6\u0ab9\3\2\2\2\u0ac6\u0abd\3\2\2\2"+ + "\u0ac6\u0ac1\3\2\2\2\u0ac7\u0aca\3\2\2\2\u0ac8\u0ac6\3\2\2\2\u0ac8\u0ac9"+ + "\3\2\2\2\u0ac9\u01c5\3\2\2\2\u0aca\u0ac8\3\2\2\2\u0acb\u0acc\b\u00e4\1"+ + "\2\u0acc\u0acd\5\u01c8\u00e5\2\u0acd\u0ad6\3\2\2\2\u0ace\u0acf\f\4\2\2"+ + "\u0acf\u0ad0\7T\2\2\u0ad0\u0ad5\5\u01c8\u00e5\2\u0ad1\u0ad2\f\3\2\2\u0ad2"+ + "\u0ad3\7U\2\2\u0ad3\u0ad5\5\u01c8\u00e5\2\u0ad4\u0ace\3\2\2\2\u0ad4\u0ad1"+ + "\3\2\2\2\u0ad5\u0ad8\3\2\2\2\u0ad6\u0ad4\3\2\2\2\u0ad6\u0ad7\3\2\2\2\u0ad7"+ + "\u01c7\3\2\2\2\u0ad8\u0ad6\3\2\2\2\u0ad9\u0ada\b\u00e5\1\2\u0ada\u0adb"+ + "\5\u01ca\u00e6\2\u0adb\u0ae7\3\2\2\2\u0adc\u0add\f\5\2\2\u0add\u0ade\7"+ + "V\2\2\u0ade\u0ae6\5\u01ca\u00e6\2\u0adf\u0ae0\f\4\2\2\u0ae0\u0ae1\7W\2"+ + "\2\u0ae1\u0ae6\5\u01ca\u00e6\2\u0ae2\u0ae3\f\3\2\2\u0ae3\u0ae4\7[\2\2"+ + "\u0ae4\u0ae6\5\u01ca\u00e6\2\u0ae5\u0adc\3\2\2\2\u0ae5\u0adf\3\2\2\2\u0ae5"+ + "\u0ae2\3\2\2\2\u0ae6\u0ae9\3\2\2\2\u0ae7\u0ae5\3\2\2\2\u0ae7\u0ae8\3\2"+ + "\2\2\u0ae8\u01c9\3\2\2\2\u0ae9\u0ae7\3\2\2\2\u0aea\u0af2\5\u01cc\u00e7"+ + "\2\u0aeb\u0af2\5\u01ce\u00e8\2\u0aec\u0aed\7T\2\2\u0aed\u0af2\5\u01ca"+ + "\u00e6\2\u0aee\u0aef\7U\2\2\u0aef\u0af2\5\u01ca\u00e6\2\u0af0\u0af2\5"+ + "\u01d0\u00e9\2\u0af1\u0aea\3\2\2\2\u0af1\u0aeb\3\2\2\2\u0af1\u0aec\3\2"+ + "\2\2\u0af1\u0aee\3\2\2\2\u0af1\u0af0\3\2\2\2\u0af2\u01cb\3\2\2\2\u0af3"+ + "\u0af4\7R\2\2\u0af4\u0af5\5\u01ca\u00e6\2\u0af5\u01cd\3\2\2\2\u0af6\u0af7"+ + "\7S\2\2\u0af7\u0af8\5\u01ca\u00e6\2\u0af8\u01cf\3\2\2\2\u0af9\u0b00\5"+ + "\u01d2\u00ea\2\u0afa\u0afb\7I\2\2\u0afb\u0b00\5\u01ca\u00e6\2\u0afc\u0afd"+ + "\7H\2\2\u0afd\u0b00\5\u01ca\u00e6\2\u0afe\u0b00\5\u01dc\u00ef\2\u0aff"+ + "\u0af9\3\2\2\2\u0aff\u0afa\3\2\2\2\u0aff\u0afc\3\2\2\2\u0aff\u0afe\3\2"+ + "\2\2\u0b00\u01d1\3\2\2\2\u0b01\u0b04\5\u0164\u00b3\2\u0b02\u0b04\5<\37"+ + "\2\u0b03\u0b01\3\2\2\2\u0b03\u0b02\3\2\2\2\u0b04\u0b09\3\2\2\2\u0b05\u0b08"+ + "\5\u01d6\u00ec\2\u0b06\u0b08\5\u01da\u00ee\2\u0b07\u0b05\3\2\2\2\u0b07"+ + "\u0b06\3\2\2\2\u0b08\u0b0b\3\2\2\2\u0b09\u0b07\3\2\2\2\u0b09\u0b0a\3\2"+ + "\2\2\u0b0a\u01d3\3\2\2\2\u0b0b\u0b09\3\2\2\2\u0b0c\u0b0d\5\u01d2\u00ea"+ + "\2\u0b0d\u0b0e\7R\2\2\u0b0e\u01d5\3\2\2\2\u0b0f\u0b10\7R\2\2\u0b10\u01d7"+ + "\3\2\2\2\u0b11\u0b12\5\u01d2\u00ea\2\u0b12\u0b13\7S\2\2\u0b13\u01d9\3"+ + "\2\2\2\u0b14\u0b15\7S\2\2\u0b15\u01db\3\2\2\2\u0b16\u0b17\7<\2\2\u0b17"+ + "\u0b18\5\6\4\2\u0b18\u0b19\7=\2\2\u0b19\u0b1a\5\u01ca\u00e6\2\u0b1a\u0b32"+ + "\3\2\2\2\u0b1b\u0b1c\7<\2\2\u0b1c\u0b20\5\16\b\2\u0b1d\u0b1f\5*\26\2\u0b1e"+ + "\u0b1d\3\2\2\2\u0b1f\u0b22\3\2\2\2\u0b20\u0b1e\3\2\2\2\u0b20\u0b21\3\2"+ + "\2\2\u0b21\u0b23\3\2\2\2\u0b22\u0b20\3\2\2\2\u0b23\u0b24\7=\2\2\u0b24"+ + "\u0b25\5\u01d0\u00e9\2\u0b25\u0b32\3\2\2\2\u0b26\u0b27\7<\2\2\u0b27\u0b2b"+ + "\5\16\b\2\u0b28\u0b2a\5*\26\2\u0b29\u0b28\3\2\2\2\u0b2a\u0b2d\3\2\2\2"+ + "\u0b2b\u0b29\3\2\2\2\u0b2b\u0b2c\3\2\2\2\u0b2c\u0b2e\3\2\2\2\u0b2d\u0b2b"+ + "\3\2\2\2\u0b2e\u0b2f\7=\2\2\u0b2f\u0b30\5\u01a4\u00d3\2\u0b30\u0b32\3"+ + "\2\2\2\u0b31\u0b16\3\2\2\2\u0b31\u0b1b\3\2\2\2\u0b31\u0b26\3\2\2\2\u0b32"+ + "\u01dd\3\2\2\2\u014a\u01e2\u01e7\u01ee\u01f2\u01f6\u01ff\u0203\u0208\u020e"+ + "\u0213\u021a\u021f\u0221\u0227\u022c\u0231\u0236\u0241\u024f\u0254\u025c"+ + "\u0263\u0269\u026e\u0279\u027c\u028a\u028f\u0294\u0299\u029f\u02a9\u02b1"+ + "\u02bb\u02c3\u02cf\u02d3\u02d8\u02de\u02e6\u02ef\u02fa\u0317\u031b\u0320"+ + "\u0326\u0329\u032c\u0338\u0343\u0351\u0358\u0360\u0367\u036c\u0370\u037d"+ + "\u0384\u038a\u038e\u0392\u0396\u039a\u039f\u03a3\u03a7\u03a9\u03ae\u03b5"+ + "\u03ba\u03bc\u03c2\u03c7\u03cb\u03de\u03e3\u03f3\u03f6\u03fa\u0400\u0404"+ + "\u0408\u040a\u040e\u0413\u0417\u041e\u0425\u042d\u0430\u0435\u0439\u043f"+ + "\u0444\u044b\u0452\u0457\u045d\u0469\u046e\u0472\u047c\u0481\u0489\u048c"+ + "\u0491\u0499\u049c\u04a1\u04a6\u04ab\u04b0\u04b7\u04bc\u04c4\u04c9\u04ce"+ + "\u04d3\u04d9\u04df\u04e2\u04e5\u04ee\u04f4\u04fa\u04fd\u0500\u0508\u050d"+ + "\u0512\u0518\u051b\u0526\u052f\u0539\u053e\u0549\u054e\u055a\u055f\u056b"+ + "\u0575\u057a\u0582\u0585\u058c\u0594\u059a\u05a3\u05ad\u05b1\u05b4\u05bd"+ + "\u05cb\u05ce\u05d7\u05dc\u05e4\u05ea\u05f1\u05f6\u0602\u0609\u0617\u062d"+ + "\u064f\u065b\u0661\u066d\u067a\u0694\u0698\u069d\u06a1\u06a5\u06ad\u06b1"+ + "\u06b5\u06bc\u06c5\u06cd\u06dc\u06e8\u06ee\u06f4\u0709\u070e\u0714\u0720"+ + "\u072b\u0735\u0738\u073d\u0746\u074c\u0756\u075b\u0764\u077b\u0785\u079b"+ + "\u07a2\u07aa\u07b2\u07bd\u07d4\u07de\u07e9\u07ff\u0803\u0808\u0810\u0816"+ + "\u081a\u081e\u0822\u0828\u082d\u0832\u0836\u083a\u0840\u0845\u084a\u084e"+ + "\u0852\u0854\u0859\u085e\u0863\u0867\u086b\u086f\u0874\u087c\u0882\u0886"+ + "\u088a\u088e\u0894\u0899\u089e\u08a2\u08a6\u08a8\u08ad\u08bc\u08ca\u08d6"+ + "\u08df\u08ee\u08fb\u0904\u090a\u0911\u0916\u091d\u0922\u0929\u092e\u0935"+ + "\u093a\u0942\u0947\u094b\u094f\u0954\u095b\u0962\u0967\u096e\u0973\u097a"+ + "\u097f\u0987\u098c\u0990\u0997\u099d\u09a4\u09ab\u09b2\u09ba\u09c1\u09c9"+ + "\u09cd\u09d4\u09db\u09e2\u09ea\u09f1\u09f9\u09ff\u0a05\u0a11\u0a17\u0a1d"+ + "\u0a28\u0a31\u0a34\u0a3b\u0a40\u0a44\u0a4d\u0a58\u0a62\u0a6d\u0a78\u0a83"+ + "\u0a8e\u0a9a\u0a9c\u0ab1\u0ab3\u0ac6\u0ac8\u0ad4\u0ad6\u0ae5\u0ae7\u0af1"+ + "\u0aff\u0b03\u0b07\u0b09\u0b20\u0b2b\u0b31"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + 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); + } + } +} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/sat/CNF/CNF.java b/src/main/java/de/dhbwstuttgart/sat/CNF/CNF.java deleted file mode 100644 index e5d9b3d0..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/CNF/CNF.java +++ /dev/null @@ -1,8 +0,0 @@ -package de.dhbwstuttgart.sat.CNF; - -public class CNF { - /* - Baut die CNF Datei. - Hier muss man überlegen, in welchem Form die Constraints gebaut werden - */ -} diff --git a/src/main/java/de/dhbwstuttgart/sat/CNF/Writer.java b/src/main/java/de/dhbwstuttgart/sat/CNF/Writer.java deleted file mode 100644 index c366686a..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/CNF/Writer.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.dhbwstuttgart.sat.CNF; - -import java.io.*; - -/** - * Schreibt CNFs in eine Datei im DIMACS CNF Format - */ -public class Writer { - public Writer(FileWriter output){ - - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/ASPStringConverter.java b/src/main/java/de/dhbwstuttgart/sat/asp/ASPStringConverter.java deleted file mode 100644 index 5235ab1a..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/ASPStringConverter.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.dhbwstuttgart.sat.asp; - -import de.dhbwstuttgart.parser.scope.JavaClassName; - -import java.util.HashMap; -import java.util.Map; - -public class ASPStringConverter { - private static final Map replacements = new HashMap<>(); - static{ - replacements.put(".", "_DOT_"); - replacements.put("$", "_DOLLAR_"); - } - - public static String toConstant(JavaClassName name){ - return toConstant(name.toString()); - } - - public static String toConstant(String name){ - return "c" + replace(name); - } - - public static String fromConstant(String s){ - return unReplace(s).substring(1); - } - - private static String replace(String input){ - for(String toReplace : replacements.keySet()){ - input = input.replace(toReplace, replacements.get(toReplace)); - } - return input; - } - - private static String unReplace(String input){ - for(String toReplace : replacements.keySet()){ - input = input.replace(replacements.get(toReplace), toReplace); - } - return input; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/Clingo.java b/src/main/java/de/dhbwstuttgart/sat/asp/Clingo.java deleted file mode 100644 index 9f529bbe..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/Clingo.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.dhbwstuttgart.sat.asp; - - -import org.apache.commons.io.IOUtils; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -public class Clingo { - private final List input; - private static final List programFiles = new ArrayList<>(); - static{ - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/basis.lp")); - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/finiteclosure.lp")); - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/subst.lp")); - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/reduce.lp")); - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/unify.lp")); - programFiles.add(new File("/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/unifyWithoutWildcards/adapt.lp")); - } - - public Clingo(List inputFiles){ - this.input = inputFiles; - } - - /* - TODO: Clingo per Java Wrapper https://stackoverflow.com/questions/3356200/using-java-to-wrap-over-c - */ - public String runClingo() throws IOException, InterruptedException { - String pathToClingo = - "/home/janulrich/Sync/HiwiJob/ResearchPapers/MasterarbeitStadelmeier/asp/clingo-5.2.1-linux-x86_64/clingo"; - List commands = new ArrayList<>(); - commands.add(pathToClingo); - //commands.add("--outf=2"); //use JSON-Output - commands.add("--outf=1"); //use JSON-Output - for(File file : input){ - commands.add(file.getPath()); - } - commands.addAll(programFiles.stream().map(f->f.getPath()).collect(Collectors.toList())); - - Process clingo = new ProcessBuilder( commands.toArray(new String[0])).start(); - InputStream output = clingo.getInputStream(); - clingo.waitFor(); - String result = IOUtils.toString(output, StandardCharsets.UTF_8); - return result; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPGencayRule.java b/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPGencayRule.java deleted file mode 100644 index e16592cc..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPGencayRule.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.dhbwstuttgart.sat.asp.model; - -public enum ASPGencayRule { - ASP_PAIR_EQUALS_NAME("equals"), - ASP_PAIR_SMALLER_NAME("sub"), - ASP_PAIR_SMALLER_DOT_NAME("subEq"), - ASP_PARAMLIST_NAME("paramEq"), - ASP_FC_PARAMLIST_NAME("param"), - ASP_PARAMLIST_END_POINTER("null"), - ASP_TYPE("typeEq"), - ASP_FCTYPE("type"), - ASP_TYPE_VAR("var"), - ASP_GENERIC_VAR("pph"), - ASP_PARAMLIST_ORDER("paramOrder"); - - private final String text; - - private ASPGencayRule(final String text) { - this.text = text; - } - - @Override - public String toString() { - return text; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPRule.java b/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPRule.java deleted file mode 100644 index 20d221f9..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/model/ASPRule.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.dhbwstuttgart.sat.asp.model; - -public enum ASPRule { - ASP_PAIR_EQUALS_NAME("equals"), - ASP_PAIR_SMALLER_NAME("smaller"), - ASP_PAIR_SMALLER_DOT_NAME("smallerDot"), - ASP_PARAMLIST_NAME("param"), - ASP_PARAMLIST_END_POINTER("null"), - ASP_TYPE("type"), - ASP_FCTYPE("typeFC"), - ASP_TYPE_VAR("typeVar"); - - private final String text; - - private ASPRule(final String text) { - this.text = text; - } - - @Override - public String toString() { - return text; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/parser/ASPParser.java b/src/main/java/de/dhbwstuttgart/sat/asp/parser/ASPParser.java deleted file mode 100644 index 80ebfc38..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/parser/ASPParser.java +++ /dev/null @@ -1,231 +0,0 @@ -package de.dhbwstuttgart.sat.asp.parser; - -import de.dhbwstuttgart.exceptions.DebugException; -import de.dhbwstuttgart.exceptions.NotImplementedException; -import de.dhbwstuttgart.parser.NullToken; -import de.dhbwstuttgart.parser.scope.JavaClassName; -import de.dhbwstuttgart.sat.asp.ASPStringConverter; -import de.dhbwstuttgart.sat.asp.model.ASPRule; -import de.dhbwstuttgart.sat.asp.parser.antlr.UnifyResultBaseListener; -import de.dhbwstuttgart.sat.asp.parser.antlr.UnifyResultLexer; -import de.dhbwstuttgart.sat.asp.parser.antlr.UnifyResultParser; -import de.dhbwstuttgart.sat.asp.parser.model.ParsedType; -import de.dhbwstuttgart.syntaxtree.type.*; -import de.dhbwstuttgart.typeinference.result.*; -import org.antlr.v4.runtime.CharStreams; -import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.tree.ParseTreeWalker; - -import javax.json.Json; -import javax.json.JsonArray; -import javax.json.JsonObject; -import java.io.StringReader; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -/** - * Ablauf: - * - Erst werden alle benötigten Statements eingelesen. Die Pointer bleiben als Strings erhalten - * - Anschließend müssen diese wieder zu einem Unify Ergebnis zurückgewandelt werden - * - Hier nicht die Typen aus dem unify.model packages verwenden. - * TODO: Überlegen welche Informationen noch nach der Unifizierung gebraucht werden - * -> Eigentlich nur die korrekten Namen der Typen und TPHs - */ -public class ASPParser extends UnifyResultBaseListener { - private Collection originalTPHs; - private ResultSet resultSet; - private Map types = new HashMap<>(); - private Set tphs = new HashSet<>(); - private Map parameterLists = new HashMap<>(); - private Set equalsRelations = new HashSet<>(); - private Set smallerRelations = new HashSet<>(); - - /** - * Parst clingo output welcher als JSON (option --outf=2) ausgibt - * @param toParse - * @return - */ - public static ResultSet parse(String toParse, Collection oldPlaceholders){ - return new ASPParser(toParse, oldPlaceholders).resultSet; - } - - @Override - public void enterParameter(UnifyResultParser.ParameterContext ctx) { - //Linked List (pointer, Type, nextPointer) - List params = parseParameterList(ctx.parameterList()); - parameterLists.put(params.get(0), new ParameterListNode(params.get(1), params.get(2))); - } - - private static class Relation { - public final String right; - public final String left; - - Relation(String leftType, String rightType){ - this.left = leftType; - this.right = rightType; - } - - @Override - public int hashCode() { - return (left+right).hashCode(); - } - - @Override - public boolean equals(Object obj) { - if(obj instanceof Relation) - return (right+left).equals(((Relation) obj).left+((Relation) obj).right); - return super.equals(obj); - } - } - - private List parseParameterList(UnifyResultParser.ParameterListContext ctx){ - return ctx.value().stream().map(v -> - //ASPStringConverter.fromConstant(v.getText()) - v.getText() - ).collect(Collectors.toList()); - } - - @Override - public void enterEquals(UnifyResultParser.EqualsContext ctx) { - List parameterList = parseParameterList(ctx.parameterList()); - if(parameterList.size()<2)throw new DebugException("Fehler in Equals-Regel"); - String ls = parameterList.get(0); - String rs = parameterList.get(1); - equalsRelations.add(new Relation(ls, rs)); - - } - - @Override - public void enterSmaller(UnifyResultParser.SmallerContext ctx) { - List parameterList = parseParameterList(ctx.parameterList()); - if(parameterList.size()<2)throw new DebugException("Fehler in Smaller-Regel"); - String ls = parameterList.get(0); - String rs = parameterList.get(1); - smallerRelations.add(new Relation(ls, rs)); - } - - @Override - public void enterTypeVar(UnifyResultParser.TypeVarContext ctx) { - List parameterList = parseParameterList(ctx.parameterList()); - if(parameterList.size()<1)throw new DebugException("Fehler in typeVar-Regel"); - tphs.add(parameterList.get(0)); - } - - @Override - public void enterType(UnifyResultParser.TypeContext ctx){ - List parameterList = parseParameterList(ctx.parameterList()); - if(parameterList.size()<3)throw new DebugException("Fehler in Type-Regel"); - String name = parameterList.get(0); - String typeName = parameterList.get(1); - String paramPointer = parameterList.get(2); - types.put(name, new ParsedType(typeName, paramPointer)); - } - - /* - private List parsedRule; - private List parseRule(String rule){ - UnifyResultLexer lexer = new UnifyResultLexer(CharStreams.fromString(rule)); - UnifyResultParser.AspruleContext parseTree = new UnifyResultParser(new CommonTokenStream(lexer)).asprule(); - parsedRule = new ArrayList<>(); - new ParseTreeWalker().walk(this, parseTree); - return parsedRule; - } - - @Override - public void enterAsprule(UnifyResultParser.AspruleContext ctx) { - super.enterAsprule(ctx); - for(int i = 0; i< ctx.getChildCount();i++){ - parsedRule.add(ctx.getChild(i).getText()); - } - } - */ - private ASPParser(String toParse, Collection oldPlaceholders){ - //System.out.println(toParse); - this.originalTPHs = oldPlaceholders; - - /* - JsonObject jsonResult = Json.createReader(new StringReader(toParse)).readObject(); - JsonArray results = jsonResult.getJsonArray("Call").getJsonObject(0). - getJsonArray("Witnesses").getJsonObject(0). - getJsonArray("Value"); - - //Im ersten Schritt werden alle Regeln geparst - String completeResult = ""; - for(int i = 0; i ret = new HashSet<>(); - //Zuerst die params und typeVars: - //for(String paramPointer : types.values().stream().map(parsedType -> parsedType.params).collect(Collectors.toList())){ } - - //Dann die Equalsdot Statements - for(Relation eq : equalsRelations){ - RefTypeOrTPHOrWildcardOrGeneric lsType = this.getType(eq.left); - RefTypeOrTPHOrWildcardOrGeneric rsType = this.getType(eq.right); - if(lsType instanceof TypePlaceholder && rsType instanceof RefType) - ret.add(new PairTPHequalRefTypeOrWildcardType((TypePlaceholder) lsType, rsType)); - else if(lsType instanceof TypePlaceholder && rsType instanceof TypePlaceholder) - ret.add(new PairTPHEqualTPH((TypePlaceholder)lsType, (TypePlaceholder)rsType)); - else throw new NotImplementedException(); - } - this.resultSet = new ResultSet(ret); - } - - private RefTypeOrTPHOrWildcardOrGeneric getType(String name) { - if(tphs.contains(name)){ - name = ASPStringConverter.fromConstant(name); - for(TypePlaceholder tph : originalTPHs){ - if(tph.getName().equals(name))return tph; - } - return TypePlaceholder.fresh(new NullToken()); - }else - if(types.containsKey(name)){ - List params = new ArrayList<>(); - ParsedType t = types.get(name); - - for(String param : getParams(t.params)){ - params.add(this.getType(param)); - } - return new RefType(new JavaClassName(ASPStringConverter.fromConstant(t.name)), params, new NullToken()); - }else throw new DebugException("Der Typ " + name + " konnte nicht bestimmt werden"); - } - - private static class ParameterListNode{ - final String type; - final String nextNode; - - public ParameterListNode(String type, String next) { - this.type = type; - this.nextNode = next; - } - } - - private List getParams(String pointer) { - List params = new ArrayList<>(); - while(pointer != null){ - if(pointer.equals(ASPRule.ASP_PARAMLIST_END_POINTER.toString()))return params; - if(!parameterLists.containsKey(pointer)) - throw new DebugException("Fehler in Ergebnisparsen"); - //TODO: Fehler in ASP. Die adapt Regel muss erkennen, wenn die Parameterliste auf der linken Seite kürzer ist und diese Rechtzeitig beenden - ParameterListNode param = parameterLists.get(pointer); - pointer = param.nextNode; - params.add(param.type); - } - return params; - //Optional ret = parameterLists.stream().filter(aspParameterList -> aspParameterList.name.equals(rs)).findAny(); - //return ret.get(); - } -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/parser/model/ParsedType.java b/src/main/java/de/dhbwstuttgart/sat/asp/parser/model/ParsedType.java deleted file mode 100644 index d9e06e50..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/parser/model/ParsedType.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.dhbwstuttgart.sat.asp.parser.model; - -import java.util.List; - -public class ParsedType { - public final String name; - public final String params; - public ParsedType(String name, String params){ - this.name = name; - this.params = params; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPFactory.java b/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPFactory.java deleted file mode 100644 index 1777eabd..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPFactory.java +++ /dev/null @@ -1,127 +0,0 @@ -package de.dhbwstuttgart.sat.asp.writer; - -import de.dhbwstuttgart.exceptions.NotImplementedException; -import de.dhbwstuttgart.parser.SyntaxTreeGenerator.FCGenerator; -import de.dhbwstuttgart.sat.asp.ASPStringConverter; -import de.dhbwstuttgart.sat.asp.model.ASPRule; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.factory.NameGenerator; -import de.dhbwstuttgart.syntaxtree.type.*; -import de.dhbwstuttgart.typeinference.constraints.Constraint; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; - -import java.util.*; - -public class ASPFactory implements TypeVisitor{ - - public static String generateASP(ConstraintSet constraints, Collection fcClasses) throws ClassNotFoundException{ - ASPFactory factory = new ASPFactory(); - factory.convertFC(fcClasses); - List> constraints1 = constraints.cartesianProduct().iterator().next(); - for(Constraint constraint : constraints1){ - for(Pair p : constraint){ - factory.convertPair(p); - } - } - - return factory.writer.getASPFile(); - } - - ASPWriter writer = new ASPWriter(); - boolean isFCType = false; - - private void convertFC(Collection classes) throws ClassNotFoundException { - Set fc = FCGenerator.toFC(classes); - isFCType = true; - for(Pair fcp : fc){ - convertPair(fcp); - } - isFCType = false; - } - - private void convertPair(Pair p){ - String ls = p.TA1.acceptTV(this); - String rs = p.TA2.acceptTV(this); - ASPStatement pairStmt = null; - if(p.GetOperator().equals(PairOperator.SMALLERDOT)){ - pairStmt = makeStatement(ASPRule.ASP_PAIR_SMALLER_DOT_NAME.toString(), ls, rs); - }else if(p.GetOperator().equals(PairOperator.EQUALSDOT)){ - pairStmt = makeStatement(ASPRule.ASP_PAIR_EQUALS_NAME.toString(), ls, rs); - }else if(p.GetOperator().equals(PairOperator.SMALLER)){ - pairStmt = makeStatement(ASPRule.ASP_PAIR_SMALLER_NAME.toString(), ls, rs); - }else throw new NotImplementedException(); - writer.add(pairStmt); - } - - private ASPStatement makeStatement(String rule, String... params){ - String stmt = rule + "("; - for(String param : params){ - stmt += param + ","; - } - stmt = stmt.substring(0,stmt.length()-1); - stmt += ")"; - return new ASPStatement(stmt); - } - - private String convertParameterlist(List pointers){ - String pointer = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - Iterator it = pointers.iterator(); - String p = pointer; - if(!it.hasNext()){ - return ASPRule.ASP_PARAMLIST_END_POINTER.toString(); - } - while (it.hasNext()){ - ASPStatement stmt; - String type = it.next(); - String nextP = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - if(it.hasNext()){ - stmt = makeStatement(ASPRule.ASP_PARAMLIST_NAME.toString(), p, type, nextP); - }else{ - stmt = makeStatement(ASPRule.ASP_PARAMLIST_NAME.toString(), p, type, - ASPRule.ASP_PARAMLIST_END_POINTER.toString()); - } - p = nextP; - writer.add(stmt); - } - return pointer; - } - - @Override - public String visit(RefType refType) { - String pointer = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - List params = new ArrayList<>(); - for(RefTypeOrTPHOrWildcardOrGeneric param : refType.getParaList()){ - params.add(param.acceptTV(this)); - } - String typeName = ASPStringConverter.toConstant(refType.getName()); - String ruleName = isFCType?ASPRule.ASP_FCTYPE.toString():ASPRule.ASP_TYPE.toString(); - ASPStatement stmt = makeStatement(ruleName, pointer, typeName, convertParameterlist(params)); - writer.add(stmt); - return pointer; - } - - @Override - public String visit(SuperWildcardType superWildcardType) { - throw new NotImplementedException(); - } - - @Override - public String visit(TypePlaceholder typePlaceholder) { - String name = ASPStringConverter.toConstant(typePlaceholder.getName()); - ASPStatement stmt = makeStatement(ASPRule.ASP_TYPE_VAR.toString(), name); - writer.add(stmt); - return name; - } - - @Override - public String visit(ExtendsWildcardType extendsWildcardType) { - throw new NotImplementedException(); - } - - @Override - public String visit(GenericRefType genericRefType) { - throw new NotImplementedException(); - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPGencayFactory.java b/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPGencayFactory.java deleted file mode 100644 index 11408c25..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPGencayFactory.java +++ /dev/null @@ -1,264 +0,0 @@ -package de.dhbwstuttgart.sat.asp.writer; - -import de.dhbwstuttgart.exceptions.NotImplementedException; -import de.dhbwstuttgart.parser.SyntaxTreeGenerator.FCGenerator; -import de.dhbwstuttgart.sat.asp.ASPStringConverter; -import de.dhbwstuttgart.sat.asp.model.ASPGencayRule; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.factory.NameGenerator; -import de.dhbwstuttgart.syntaxtree.type.*; -import de.dhbwstuttgart.typeinference.constraints.Constraint; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; - -import java.util.*; - - -public class ASPGencayFactory implements TypeVisitor { - /* TODO: - * Alle TPHs müssen als var(tph) definiert sein - * Wenn es eine Variable ist, dann direkt in die type-Regel schreiben: type(p, type, tph) - * Für die FCTypen eindeutige Namen für die pph-Regeln - * (ergibt sich von selbst, weil man einfach den Namen der TPH in der FC verwenden kann) - * paramOrder wird benötigt! - * Nur bei parameterlisten > 1 - * paramOrder(paralistPointer, parameter, num) - * (ähnlich meiner paramNum) - * Trennung von FC und Eq: - * sub -> type -> param - * ...Eq -> typeEq -> paramEq - * type..(_,_,_p): p kann sein: - * 1. Variable - * 2. ParameterPointer - * 3. null - */ - ASPWriter writer = new ASPWriter(); - boolean isFCType = false; - - private static List generateVar(ConstraintSet constraints){ - List ret = new ArrayList<>(); - for(TypePlaceholder tph : getInvolvedTPHS(constraints)){ - ret.add(makeStatement(ASPGencayRule.ASP_TYPE_VAR.toString(), - ASPStringConverter.toConstant(tph.getName()))); - } - return ret; - } - - protected static Collection getInvolvedTPHS(ConstraintSet toTest) { - List ret = new ArrayList<>(); - toTest.map((Pair p)-> { - ret.addAll(p.TA1.acceptTV(new TPHExtractor())); - ret.addAll(p.TA2.acceptTV(new TPHExtractor())); - return p; - }); - return ret; - } - - public static String generateASP(ConstraintSet constraints, Collection fcClasses) throws ClassNotFoundException{ - ASPGencayFactory factory = new ASPGencayFactory(); - factory.convertFC(fcClasses); - List> constraints1 = constraints.cartesianProduct().iterator().next(); - for(Constraint constraint : constraints1){ - for(Pair p : constraint){ - factory.convertPair(p); - } - } - factory.writer.addAll(generateVar(constraints)); - - return factory.writer.getASPFile(); - } - - private void convertFC(Collection classes) throws ClassNotFoundException { - Set fc = FCGenerator.toFC(classes); - isFCType = true; - for(Pair fcp : fc){ - generateTheta((RefType) fcp.TA1); - generateTheta((RefType) fcp.TA2); - convertPair(fcp); - } - isFCType = false; - } - - private void generateTheta(RefType t){ - String rule = "theta"+t.getParaList().size() ; - String name = ASPStringConverter.toConstant(t.getName()); - writer.add(makeStatement(rule, name)); - } - - private void convertPair(Pair p){ - String ls = p.TA1.acceptTV(this); - String rs = p.TA2.acceptTV(this); - ASPStatement pairStmt = null; - if(p.GetOperator().equals(PairOperator.SMALLERDOT)){ - pairStmt = makeStatement(ASPGencayRule.ASP_PAIR_SMALLER_DOT_NAME.toString(), ls, rs); - }else if(p.GetOperator().equals(PairOperator.EQUALSDOT)){ - pairStmt = makeStatement(ASPGencayRule.ASP_PAIR_EQUALS_NAME.toString(), ls, rs); - }else if(p.GetOperator().equals(PairOperator.SMALLER)){ - pairStmt = makeStatement(ASPGencayRule.ASP_PAIR_SMALLER_NAME.toString(), ls, rs); - }else throw new NotImplementedException(); - writer.add(pairStmt); - } - - private static ASPStatement makeStatement(String rule, String... params){ - String stmt = rule + "("; - for(String param : params){ - stmt += param + ","; - } - stmt = stmt.substring(0,stmt.length()-1); - stmt += ")"; - return new ASPStatement(stmt); - } - - private String convertParameterlist(List pointers){ - //if(pointers.size()==1)return pointers.get(0); - String pointer = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - Iterator it = pointers.iterator(); - String p = pointer; - String paramname = ASPGencayRule.ASP_PARAMLIST_NAME.toString(); - if(this.isFCType)paramname = ASPGencayRule.ASP_FC_PARAMLIST_NAME.toString(); - if(!it.hasNext()){ - return ASPGencayRule.ASP_PARAMLIST_END_POINTER.toString(); - } - while (it.hasNext()){ - ASPStatement stmt; - String type = it.next(); - String nextP = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - if(it.hasNext()){ - stmt = makeStatement(paramname, p, type, nextP); - }else{ - stmt = makeStatement(paramname, p, type, - ASPGencayRule.ASP_PARAMLIST_END_POINTER.toString()); - } - p = nextP; - writer.add(stmt); - } - return pointer; - } - - //Wird zum erstellen der pph(..) Regeln gebraucht - private String currentFCTypePointer = ""; - @Override - public String visit(RefType refType) { - String pointer = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - currentFCTypePointer = pointer; - String paramPointer = ASPGencayRule.ASP_PARAMLIST_END_POINTER.toString(); - if(refType.getParaList().size() == 1 ){ - if(refType.getParaList().get(0) instanceof TypePlaceholder){ - TypePlaceholder typePlaceholder = (TypePlaceholder) refType.getParaList().get(0); - paramPointer = typePlaceholder.acceptTV(this); - } - }else{ - List params = null; - params = generateParameter(refType); - params.remove(0); - paramPointer = convertParameterlist(params); - if(refType.getParaList().size()>1){ - //paramOrder generieren: - for(String param : params) { - ASPStatement pOstmt = makeStatement(ASPGencayRule.ASP_PARAMLIST_ORDER.toString(), - paramPointer, param); - writer.add(pOstmt); - } - } - } - String typeName = ASPStringConverter.toConstant(refType.getName()); - String ruleName = isFCType? ASPGencayRule.ASP_FCTYPE.toString(): ASPGencayRule.ASP_TYPE.toString(); - ASPStatement stmt = makeStatement(ruleName, pointer, typeName, paramPointer); - writer.add(stmt); - return pointer; - /* - String pointer = ASPStringConverter.toConstant(NameGenerator.makeNewName()); - List params = null; - params = generateParameter(refType); - params.remove(0); //Das erste ist der eigentliche Typ kein parameter - String typeName = ASPStringConverter.toConstant(refType.getName()); - String ruleName = isFCType? ASPGencayRule.ASP_FCTYPE.toString(): ASPGencayRule.ASP_TYPE.toString(); - ASPStatement stmt = makeStatement(ruleName, pointer, typeName, convertParameterlist(params)); - writer.add(stmt); - return pointer; - */ - } - - /** - * Erstellt die Parameterliste, wobei type auch schon als Parameter betrachtet wird. - * Die RefTypes werden nicht zu extra type-Regeln umgewandelt. Es wird nur ihr Name als Konstante benutzt - * Das funktioniert, weil nacher das ParamOrder zuteilt, welche Typen zusammenhängen. - * Diese funktion nur verwenden, wenn auch ein paramOrder generiert wird - */ - private List generateParameter(RefType type){ - List ret = new ArrayList<>(); - ret.add(ASPStringConverter.toConstant(type.getName())); - for(RefTypeOrTPHOrWildcardOrGeneric param : type.getParaList()){ - if(param instanceof RefType){ - ret.addAll(generateParameter((RefType) param)); - }else if(param instanceof TypePlaceholder){ - ret.add(param.acceptTV(this)); - }else throw new NotImplementedException(); - } - return ret; - } - - @Override - public String visit(SuperWildcardType superWildcardType) { - throw new NotImplementedException(); - } - - @Override - public String visit(TypePlaceholder typePlaceholder) { - String name = ASPStringConverter.toConstant(typePlaceholder.getName()); - - ASPStatement stmt = null; - if(isFCType){ - stmt = makeStatement(ASPGencayRule.ASP_GENERIC_VAR.toString(), - currentFCTypePointer, name); - } else { - stmt = makeStatement(ASPGencayRule.ASP_TYPE_VAR.toString(), name); - } - - writer.add(stmt); - return name; - } - - @Override - public String visit(ExtendsWildcardType extendsWildcardType) { - throw new NotImplementedException(); - } - - @Override - public String visit(GenericRefType genericRefType) { - throw new NotImplementedException(); - } - - private static class TPHExtractor implements TypeVisitor>{ - @Override - public List visit(RefType refType) { - ArrayList ret = new ArrayList<>(); - for(RefTypeOrTPHOrWildcardOrGeneric param : refType.getParaList()){ - ret.addAll(param.acceptTV(this)); - } - return ret; - } - - @Override - public List visit(SuperWildcardType superWildcardType) { - return superWildcardType.getInnerType().acceptTV(this); - } - - @Override - public List visit(TypePlaceholder typePlaceholder) { - return Arrays.asList(typePlaceholder); - } - - @Override - public List visit(ExtendsWildcardType extendsWildcardType) { - return extendsWildcardType.getInnerType().acceptTV(this); - } - - @Override - public List visit(GenericRefType genericRefType) { - return new ArrayList<>(); - } - } - -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPStatement.java b/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPStatement.java deleted file mode 100644 index 8d342464..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPStatement.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.dhbwstuttgart.sat.asp.writer; - -public class ASPStatement { - private final String stmt; - public ASPStatement(String stmt) { - this.stmt = stmt; - } - - public String toString(){ - return stmt; - } - - @Override - public int hashCode() { - return stmt.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if(obj instanceof ASPStatement)return stmt.equals(((ASPStatement) obj).stmt); - return false; - } - - public String getASP() { - return stmt; - } -} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPWriter.java b/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPWriter.java deleted file mode 100644 index 57aef860..00000000 --- a/src/main/java/de/dhbwstuttgart/sat/asp/writer/ASPWriter.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.dhbwstuttgart.sat.asp.writer; - -import java.util.Collection; -import java.util.HashSet; -import java.util.List; - -public class ASPWriter { - - private HashSet content = new HashSet<>(); - - public void add(ASPStatement stmt){ - content.add(stmt); - } - - public String getASPFile(){ - String ret = ""; - for(ASPStatement statement : content){ - ret += statement.getASP() + ".\n"; - } - return ret; - } - - public void addAll(Collection aspStatements) { - content.addAll(aspStatements); - } -} diff --git a/src/main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java b/src/main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java index 4241af34..1d7decee 100644 --- a/src/main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java +++ b/src/main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java @@ -7,13 +7,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; -import de.dhbwstuttgart.exceptions.DebugException; import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.SyntaxTreeGenerator.FCGenerator; import de.dhbwstuttgart.parser.scope.JavaClassName; -import de.dhbwstuttgart.sat.asp.model.ASPRule; -import de.dhbwstuttgart.sat.asp.parser.ASPParser; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.type.*; import de.dhbwstuttgart.syntaxtree.type.Void; diff --git a/src/test/java/asp/ClingoTest.java b/src/test/java/asp/ClingoTest.java deleted file mode 100644 index 90635bde..00000000 --- a/src/test/java/asp/ClingoTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package asp; - -import de.dhbwstuttgart.parser.NullToken; -import de.dhbwstuttgart.sat.asp.parser.ASPParser; -import de.dhbwstuttgart.sat.asp.writer.ASPFactory; -import de.dhbwstuttgart.sat.asp.Clingo; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; -import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; -import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.result.ResultSet; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; -import org.junit.Test; - -import javax.json.Json; -import javax.json.JsonObject; -import java.io.*; -import java.util.*; - -public class ClingoTest { - public static final String tempDirectory = "/tmp/"; - private final TypePlaceholder testType = TypePlaceholder.fresh(new NullToken()); - @Test - public void test() throws IOException, InterruptedException, ClassNotFoundException { - String content = ""; - content = ASPFactory.generateASP(this.getPairs(), this.getFC()); - - PrintWriter writer = new PrintWriter(tempDirectory + "test.lp", "UTF-8"); - writer.println(content); - writer.close(); - - Clingo clingo = new Clingo(Arrays.asList(new File(tempDirectory + "test.lp"))); - String result = clingo.runClingo(); - System.out.println(result); - ResultSet resultSet = ASPParser.parse(result, Arrays.asList(testType)); - RefTypeOrTPHOrWildcardOrGeneric resolvedType = resultSet.resolveType(testType).resolvedType; - assert resolvedType.toString().equals(ASTFactory.createObjectType().toString()); - } - - public Collection getFC() { - Set ret = new HashSet<>(); - return ret; - } - - public ConstraintSet getPairs() { - ConstraintSet ret = new ConstraintSet<>(); - ret.addUndConstraint(new Pair(testType, ASTFactory.createObjectType(), PairOperator.EQUALSDOT)); - return ret; - } -} diff --git a/src/test/java/asp/UnifyWithoutWildcards.java b/src/test/java/asp/UnifyWithoutWildcards.java deleted file mode 100644 index 6f69d639..00000000 --- a/src/test/java/asp/UnifyWithoutWildcards.java +++ /dev/null @@ -1,103 +0,0 @@ -package asp; - -import de.dhbwstuttgart.parser.NullToken; -import de.dhbwstuttgart.parser.scope.JavaClassName; -import de.dhbwstuttgart.sat.asp.Clingo; -import de.dhbwstuttgart.sat.asp.parser.ASPParser; -import de.dhbwstuttgart.sat.asp.writer.ASPFactory; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; -import de.dhbwstuttgart.syntaxtree.type.*; -import de.dhbwstuttgart.syntaxtree.visual.ResultSetPrinter; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.result.ResultSet; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.sql.Ref; -import java.util.*; - -public class UnifyWithoutWildcards { - - public static final String tempDirectory = "/tmp/"; - - @Test - public void adapt() throws InterruptedException, IOException, ClassNotFoundException { - ConstraintSet testSet = new ConstraintSet<>(); - List list1 = Arrays.asList(TypePlaceholder.fresh(new NullToken())); - List list2 = Arrays.asList(TypePlaceholder.fresh(new NullToken()),TypePlaceholder.fresh(new NullToken())); - RefType t1 = new RefType(new JavaClassName("asp.UnifyWithoutWildcards$Matrix"), list1, new NullToken()); - RefType t2 = new RefType(new JavaClassName("java.util.HashMap"), list2, new NullToken()); - testSet.addUndConstraint(new Pair(t1, t2, PairOperator.SMALLERDOT)); - ResultSet resultSet = run(testSet); - System.out.println(ResultSetPrinter.print(resultSet)); - assert resultSet.results.size() > 0; - } - - public ResultSet run(ConstraintSet toTest) throws IOException, InterruptedException, ClassNotFoundException { - String content = ""; - content = ASPFactory.generateASP(toTest, this.getFC()); - - PrintWriter writer = new PrintWriter(tempDirectory + "test.lp", "UTF-8"); - writer.println(content); - writer.close(); - Clingo clingo = new Clingo(Arrays.asList(new File(tempDirectory + "test.lp"))); - String result = clingo.runClingo(); - ResultSet resultSet = ASPParser.parse(result, getInvolvedTPHS(toTest)); - return resultSet; - } - - private static class TPHExtractor implements TypeVisitor>{ - @Override - public List visit(RefType refType) { - ArrayList ret = new ArrayList<>(); - for(RefTypeOrTPHOrWildcardOrGeneric param : refType.getParaList()){ - ret.addAll(param.acceptTV(this)); - } - return ret; - } - - @Override - public List visit(SuperWildcardType superWildcardType) { - return superWildcardType.getInnerType().acceptTV(this); - } - - @Override - public List visit(TypePlaceholder typePlaceholder) { - return Arrays.asList(typePlaceholder); - } - - @Override - public List visit(ExtendsWildcardType extendsWildcardType) { - return extendsWildcardType.getInnerType().acceptTV(this); - } - - @Override - public List visit(GenericRefType genericRefType) { - return new ArrayList<>(); - } - } - - protected Collection getInvolvedTPHS(ConstraintSet toTest) { - List ret = new ArrayList<>(); - toTest.map((Pair p)-> { - ret.addAll(p.TA1.acceptTV(new TPHExtractor())); - ret.addAll(p.TA2.acceptTV(new TPHExtractor())); - return p; - }); - return ret; - } - - private Collection getFC() { - Set ret = new HashSet<>(); - ret.add(ASTFactory.createClass(Matrix.class)); - //ret.add(ASTFactory.createObjectClass()); - //ret.add(ASTFactory.createClass(java.util.List.class)); - return ret; - } - private class Matrix extends HashMap>{} -} diff --git a/src/test/java/asp/gencay/GeneratorTest.java b/src/test/java/asp/gencay/GeneratorTest.java deleted file mode 100644 index 2c9fc46f..00000000 --- a/src/test/java/asp/gencay/GeneratorTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package asp.gencay; - -import asp.UnifyWithoutWildcards; -import de.dhbwstuttgart.parser.NullToken; -import de.dhbwstuttgart.parser.scope.JavaClassName; -import de.dhbwstuttgart.sat.asp.Clingo; -import de.dhbwstuttgart.sat.asp.parser.ASPParser; -import de.dhbwstuttgart.sat.asp.writer.ASPFactory; -import de.dhbwstuttgart.sat.asp.writer.ASPGencayFactory; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; -import de.dhbwstuttgart.syntaxtree.type.RefType; -import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; -import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import de.dhbwstuttgart.syntaxtree.visual.ResultSetPrinter; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import de.dhbwstuttgart.typeinference.result.ResultSet; -import de.dhbwstuttgart.typeinference.unify.model.PairOperator; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.*; -import java.util.concurrent.ArrayBlockingQueue; - -public class GeneratorTest extends UnifyWithoutWildcards{ - @Test - public void simple() throws ClassNotFoundException { - ConstraintSet testSet = new ConstraintSet<>(); - List list1 = Arrays.asList(TypePlaceholder.fresh(new NullToken())); - List list2 = Arrays.asList(TypePlaceholder.fresh(new NullToken())); - RefType t1 = new RefType(new JavaClassName("java.util.List"), list1, new NullToken()); - RefType t2 = new RefType(new JavaClassName("java.util.List"), list2, new NullToken()); - testSet.addUndConstraint(new Pair(t1, t2, PairOperator.SMALLERDOT)); - String resultSet = ASPGencayFactory.generateASP(testSet, - new HashSet<>(Arrays.asList(ASTFactory.createClass(List.class)))); - System.out.println(resultSet); - } - - @Test - public void matrix() throws ClassNotFoundException { - ConstraintSet testSet = new ConstraintSet<>(); - List list1 = Arrays.asList(TypePlaceholder.fresh(new NullToken())); - List list2 = Arrays.asList(TypePlaceholder.fresh(new NullToken()),TypePlaceholder.fresh(new NullToken())); - RefType t1 = new RefType(new JavaClassName("asp.UnifyWithoutWildcards$Matrix"), list1, new NullToken()); - RefType t2 = new RefType(new JavaClassName("java.util.HashMap"), list2, new NullToken()); - testSet.addUndConstraint(new Pair(t1, t2, PairOperator.SMALLERDOT)); - String resultSet = ASPGencayFactory.generateASP(testSet, this.getFC()); - System.out.println(resultSet); - } - - private Collection getFC() { - Set ret = new HashSet<>(); - ret.add(ASTFactory.createClass(Matrix.class)); - //ret.add(ASTFactory.createObjectClass()); - //ret.add(ASTFactory.createClass(java.util.List.class)); - return ret; - } -} - -class Matrix extends Vector> {} \ No newline at end of file diff --git a/src/test/java/asp/typeinference/ASPTest.java b/src/test/java/asp/typeinference/ASPTest.java deleted file mode 100644 index 5a43b6a9..00000000 --- a/src/test/java/asp/typeinference/ASPTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package asp.typeinference; - -import de.dhbwstuttgart.core.JavaTXCompiler; -import de.dhbwstuttgart.sat.asp.writer.ASPFactory; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.SourceFile; -import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.constraints.Pair; -import org.junit.Test; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -public class ASPTest { - - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/"; - private static final List filesToTest = new ArrayList<>(); - protected File fileToTest = null; - - public ASPTest(){ - } - - - @Test - public void test() throws IOException, ClassNotFoundException { - if(fileToTest != null)filesToTest.add(fileToTest); - else return; - //filesToTest.add(new File(rootDirectory+"Faculty.jav")); - //filesToTest.add(new File(rootDirectory+"mathStruc.jav")); - //filesToTest.add(new File(rootDirectory+"test.jav")); - filesToTest.add(new File(rootDirectory+"EmptyMethod.jav")); - //filesToTest.add(new File(rootDirectory+"fc.jav")); - //filesToTest.add(new File(rootDirectory+"Lambda.jav")); - //filesToTest.add(new File(rootDirectory+"Lambda2.jav")); - //filesToTest.add(new File(rootDirectory+"Lambda3.jav")); - //filesToTest.add(new File(rootDirectory+"Vector.jav")); - //filesToTest.add(new File(rootDirectory+"Generics.jav")); - //filesToTest.add(new File(rootDirectory+"MethodsEasy.jav")); - //filesToTest.add(new File(rootDirectory+"Matrix.jav")); - //filesToTest.add(new File(rootDirectory+"Import.jav")); - JavaTXCompiler compiler = new JavaTXCompiler(fileToTest); - Set allClasses = new HashSet<>(); - for(SourceFile sf : compiler.sourceFiles.values()) { - allClasses.addAll(compiler.getAvailableClasses(sf)); - } - for(SourceFile sf : compiler.sourceFiles.values()) { - allClasses.addAll(sf.getClasses()); - } - - final ConstraintSet cons = compiler.getConstraints(); - String asp = ASPFactory.generateASP(cons, allClasses); - System.out.println(asp); - } - - static String readFile(String path, Charset encoding) - throws IOException - { - byte[] encoded = Files.readAllBytes(Paths.get(path)); - return new String(encoded, encoding); - } - -} - diff --git a/src/test/java/asp/typeinference/GenericsTest.java b/src/test/java/asp/typeinference/GenericsTest.java deleted file mode 100644 index b0f0330a..00000000 --- a/src/test/java/asp/typeinference/GenericsTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package asp.typeinference; - -import java.io.File; - -public class GenericsTest extends ASPTest { - public GenericsTest() { - this.fileToTest = new File(rootDirectory+"Generics.jav"); - } -} \ No newline at end of file diff --git a/src/test/java/asp/typeinference/VectorTest.java b/src/test/java/asp/typeinference/VectorTest.java deleted file mode 100644 index 77ff4959..00000000 --- a/src/test/java/asp/typeinference/VectorTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package asp.typeinference; - -import java.io.File; - -public class VectorTest extends ASPTest { - public VectorTest() { - this.fileToTest = new File(rootDirectory+"Vector.jav"); - } -} \ No newline at end of file diff --git a/src/test/java/asp/unifywithoutwildcards/ASPTests.java b/src/test/java/asp/unifywithoutwildcards/ASPTests.java deleted file mode 100644 index 80e7bb78..00000000 --- a/src/test/java/asp/unifywithoutwildcards/ASPTests.java +++ /dev/null @@ -1,10 +0,0 @@ -package asp.unifywithoutwildcards; - -import org.junit.Test; - -public class ASPTests { - @Test - public void test(){ - - } -}