From 8379a326f86d5ddaa851b22c24896438633f1aba Mon Sep 17 00:00:00 2001 From: Mann Patel <130435633+Patel-Mann@users.noreply.github.com> Date: Fri, 10 Oct 2025 21:51:53 -0600 Subject: [PATCH] Assign-2-v2 --- Assignment-2/Java-8/.antlr/Java8Parser.interp | 461 + Assignment-2/Java-8/.antlr/Java8Parser.java | 18185 ++++++++++++++ Assignment-2/Java-8/.antlr/Java8Parser.tokens | 205 + Assignment-2/Java-8/Java8Lexer.class | Bin 0 -> 30779 bytes Assignment-2/Java-8/Java8Lexer.g4 | 977 + Assignment-2/Java-8/Java8Lexer.interp | 384 + Assignment-2/Java-8/Java8Lexer.java | 992 + Assignment-2/Java-8/Java8Lexer.tokens | 205 + .../Java8Parser$AdditionalBoundContext.class | Bin 0 -> 1233 bytes ...ava8Parser$AdditiveExpressionContext.class | Bin 0 -> 1456 bytes .../Java8Parser$AmbiguousNameContext.class | Bin 0 -> 1210 bytes .../Java8Parser$AndExpressionContext.class | Bin 0 -> 1348 bytes .../Java8Parser$AnnotationContext.class | Bin 0 -> 1450 bytes ...ava8Parser$AnnotationTypeBodyContext.class | Bin 0 -> 1603 bytes ...ser$AnnotationTypeDeclarationContext.class | Bin 0 -> 1819 bytes ...otationTypeElementDeclarationContext.class | Bin 0 -> 2238 bytes ...AnnotationTypeElementModifierContext.class | Bin 0 -> 1347 bytes ...notationTypeMemberDeclarationContext.class | Bin 0 -> 1970 bytes .../Java8Parser$ArgumentListContext.class | Bin 0 -> 1574 bytes .../Java8Parser$ArrayAccessContext.class | Bin 0 -> 2491 bytes ...Parser$ArrayAccess_lf_primaryContext.class | Bin 0 -> 2567 bytes ...rser$ArrayAccess_lfno_primaryContext.class | Bin 0 -> 2790 bytes ...arser$ArrayCreationExpressionContext.class | Bin 0 -> 1947 bytes .../Java8Parser$ArrayInitializerContext.class | Bin 0 -> 1387 bytes .../Java-8/Java8Parser$ArrayTypeContext.class | Bin 0 -> 1542 bytes .../Java8Parser$AssertStatementContext.class | Bin 0 -> 1535 bytes .../Java8Parser$AssignmentContext.class | Bin 0 -> 1391 bytes ...a8Parser$AssignmentExpressionContext.class | Bin 0 -> 1284 bytes ...ava8Parser$AssignmentOperatorContext.class | Bin 0 -> 1644 bytes ...Java8Parser$BasicForStatementContext.class | Bin 0 -> 2094 bytes ...er$BasicForStatementNoShortIfContext.class | Bin 0 -> 2175 bytes .../Java-8/Java8Parser$BlockContext.class | Bin 0 -> 1246 bytes .../Java8Parser$BlockStatementContext.class | Bin 0 -> 1482 bytes .../Java8Parser$BlockStatementsContext.class | Bin 0 -> 1280 bytes .../Java8Parser$BreakStatementContext.class | Bin 0 -> 1076 bytes .../Java8Parser$CastExpressionContext.class | Bin 0 -> 2445 bytes .../Java8Parser$CatchClauseContext.class | Bin 0 -> 1492 bytes ...a8Parser$CatchFormalParameterContext.class | Bin 0 -> 1674 bytes .../Java-8/Java8Parser$CatchTypeContext.class | Bin 0 -> 1731 bytes .../Java-8/Java8Parser$CatchesContext.class | Bin 0 -> 1226 bytes .../Java-8/Java8Parser$ClassBodyContext.class | Bin 0 -> 1503 bytes ...a8Parser$ClassBodyDeclarationContext.class | Bin 0 -> 1721 bytes .../Java8Parser$ClassDeclarationContext.class | Bin 0 -> 1287 bytes ...assInstanceCreationExpressionContext.class | Bin 0 -> 3020 bytes ...CreationExpression_lf_primaryContext.class | Bin 0 -> 2490 bytes ...eationExpression_lfno_primaryContext.class | Bin 0 -> 2936 bytes ...Parser$ClassMemberDeclarationContext.class | Bin 0 -> 1853 bytes .../Java8Parser$ClassModifierContext.class | Bin 0 -> 1547 bytes ...a8Parser$ClassOrInterfaceTypeContext.class | Bin 0 -> 2342 bytes .../Java-8/Java8Parser$ClassTypeContext.class | Bin 0 -> 1828 bytes ...sType_lf_classOrInterfaceTypeContext.class | Bin 0 -> 1747 bytes ...ype_lfno_classOrInterfaceTypeContext.class | Bin 0 -> 1705 bytes .../Java8Parser$CompilationUnitContext.class | Bin 0 -> 1946 bytes ...rser$ConditionalAndExpressionContext.class | Bin 0 -> 1434 bytes ...8Parser$ConditionalExpressionContext.class | Bin 0 -> 1641 bytes ...arser$ConditionalOrExpressionContext.class | Bin 0 -> 1438 bytes ...va8Parser$ConstantDeclarationContext.class | Bin 0 -> 1842 bytes ...ava8Parser$ConstantExpressionContext.class | Bin 0 -> 1069 bytes .../Java8Parser$ConstantModifierContext.class | Bin 0 -> 1335 bytes .../Java8Parser$ConstructorBodyContext.class | Bin 0 -> 1533 bytes ...Parser$ConstructorDeclarationContext.class | Bin 0 -> 1875 bytes ...8Parser$ConstructorDeclaratorContext.class | Bin 0 -> 1696 bytes ...va8Parser$ConstructorModifierContext.class | Bin 0 -> 1355 bytes ...Java8Parser$ContinueStatementContext.class | Bin 0 -> 1095 bytes .../Java8Parser$DefaultValueContext.class | Bin 0 -> 1215 bytes .../Java-8/Java8Parser$DimExprContext.class | Bin 0 -> 1605 bytes .../Java-8/Java8Parser$DimExprsContext.class | Bin 0 -> 1211 bytes .../Java-8/Java8Parser$DimsContext.class | Bin 0 -> 1642 bytes .../Java8Parser$DoStatementContext.class | Bin 0 -> 1572 bytes ...$ElementValueArrayInitializerContext.class | Bin 0 -> 1419 bytes .../Java8Parser$ElementValueContext.class | Bin 0 -> 1476 bytes .../Java8Parser$ElementValueListContext.class | Bin 0 -> 1603 bytes .../Java8Parser$ElementValuePairContext.class | Bin 0 -> 1293 bytes ...a8Parser$ElementValuePairListContext.class | Bin 0 -> 1643 bytes .../Java8Parser$EmptyStatement_Context.class | Bin 0 -> 969 bytes ...a8Parser$EnhancedForStatementContext.class | Bin 0 -> 2321 bytes ...EnhancedForStatementNoShortIfContext.class | Bin 0 -> 2402 bytes .../Java-8/Java8Parser$EnumBodyContext.class | Bin 0 -> 1520 bytes ...a8Parser$EnumBodyDeclarationsContext.class | Bin 0 -> 1501 bytes .../Java8Parser$EnumConstantContext.class | Bin 0 -> 1903 bytes .../Java8Parser$EnumConstantListContext.class | Bin 0 -> 1603 bytes ...a8Parser$EnumConstantModifierContext.class | Bin 0 -> 1078 bytes .../Java8Parser$EnumConstantNameContext.class | Bin 0 -> 980 bytes .../Java8Parser$EnumDeclarationContext.class | Bin 0 -> 1834 bytes ...ava8Parser$EqualityExpressionContext.class | Bin 0 -> 1447 bytes .../Java8Parser$ExceptionTypeContext.class | Bin 0 -> 1208 bytes ...Java8Parser$ExceptionTypeListContext.class | Bin 0 -> 1613 bytes ...8Parser$ExclusiveOrExpressionContext.class | Bin 0 -> 1383 bytes ...ExplicitConstructorInvocationContext.class | Bin 0 -> 2065 bytes .../Java8Parser$ExpressionContext.class | Bin 0 -> 1254 bytes .../Java8Parser$ExpressionNameContext.class | Bin 0 -> 1284 bytes ...va8Parser$ExpressionStatementContext.class | Bin 0 -> 1276 bytes ...Java8Parser$ExtendsInterfacesContext.class | Bin 0 -> 1260 bytes .../Java8Parser$FieldAccessContext.class | Bin 0 -> 1692 bytes ...Parser$FieldAccess_lf_primaryContext.class | Bin 0 -> 1062 bytes ...rser$FieldAccess_lfno_primaryContext.class | Bin 0 -> 1608 bytes .../Java8Parser$FieldDeclarationContext.class | Bin 0 -> 1812 bytes .../Java8Parser$FieldModifierContext.class | Bin 0 -> 1549 bytes .../Java-8/Java8Parser$Finally_Context.class | Bin 0 -> 1168 bytes ...Java8Parser$FloatingPointTypeContext.class | Bin 0 -> 1033 bytes .../Java-8/Java8Parser$ForInitContext.class | Bin 0 -> 1283 bytes .../Java8Parser$ForStatementContext.class | Bin 0 -> 1268 bytes ...8Parser$ForStatementNoShortIfContext.class | Bin 0 -> 1385 bytes .../Java-8/Java8Parser$ForUpdateContext.class | Bin 0 -> 1076 bytes .../Java8Parser$FormalParameterContext.class | Bin 0 -> 1648 bytes ...va8Parser$FormalParameterListContext.class | Bin 0 -> 1650 bytes .../Java8Parser$FormalParametersContext.class | Bin 0 -> 1807 bytes ...va8Parser$IfThenElseStatementContext.class | Bin 0 -> 1751 bytes ...$IfThenElseStatementNoShortIfContext.class | Bin 0 -> 1854 bytes .../Java8Parser$IfThenStatementContext.class | Bin 0 -> 1485 bytes ...Java8Parser$ImportDeclarationContext.class | Bin 0 -> 1850 bytes ...8Parser$InclusiveOrExpressionContext.class | Bin 0 -> 1415 bytes ...r$InferredFormalParameterListContext.class | Bin 0 -> 1336 bytes ...va8Parser$InstanceInitializerContext.class | Bin 0 -> 1053 bytes .../Java8Parser$IntegralTypeContext.class | Bin 0 -> 1163 bytes .../Java8Parser$InterfaceBodyContext.class | Bin 0 -> 1553 bytes ...a8Parser$InterfaceDeclarationContext.class | Bin 0 -> 1363 bytes ...er$InterfaceMemberDeclarationContext.class | Bin 0 -> 1921 bytes ...er$InterfaceMethodDeclarationContext.class | Bin 0 -> 1710 bytes ...arser$InterfaceMethodModifierContext.class | Bin 0 -> 1485 bytes ...Java8Parser$InterfaceModifierContext.class | Bin 0 -> 1513 bytes .../Java8Parser$InterfaceTypeContext.class | Bin 0 -> 1039 bytes ...Java8Parser$InterfaceTypeListContext.class | Bin 0 -> 1613 bytes ...eType_lf_classOrInterfaceTypeContext.class | Bin 0 -> 1255 bytes ...ype_lfno_classOrInterfaceTypeContext.class | Bin 0 -> 1273 bytes .../Java8Parser$LabeledStatementContext.class | Bin 0 -> 1281 bytes ...ser$LabeledStatementNoShortIfContext.class | Bin 0 -> 1362 bytes .../Java8Parser$LambdaBodyContext.class | Bin 0 -> 1170 bytes .../Java8Parser$LambdaExpressionContext.class | Bin 0 -> 1411 bytes .../Java8Parser$LambdaParametersContext.class | Bin 0 -> 1606 bytes ...va8Parser$LastFormalParameterContext.class | Bin 0 -> 2288 bytes .../Java8Parser$LeftHandSideContext.class | Bin 0 -> 1385 bytes .../Java-8/Java8Parser$LiteralContext.class | Bin 0 -> 1256 bytes ...rser$LocalVariableDeclarationContext.class | Bin 0 -> 1702 bytes ...lVariableDeclarationStatementContext.class | Bin 0 -> 1366 bytes .../Java8Parser$MarkerAnnotationContext.class | Bin 0 -> 1214 bytes .../Java8Parser$MethodBodyContext.class | Bin 0 -> 1174 bytes ...Java8Parser$MethodDeclarationContext.class | Bin 0 -> 1620 bytes .../Java8Parser$MethodDeclaratorContext.class | Bin 0 -> 1513 bytes .../Java8Parser$MethodHeaderContext.class | Bin 0 -> 1901 bytes .../Java8Parser$MethodInvocationContext.class | Bin 0 -> 2507 bytes ...r$MethodInvocation_lf_primaryContext.class | Bin 0 -> 1629 bytes ...MethodInvocation_lfno_primaryContext.class | Bin 0 -> 2423 bytes .../Java8Parser$MethodModifierContext.class | Bin 0 -> 1668 bytes .../Java8Parser$MethodNameContext.class | Bin 0 -> 949 bytes .../Java8Parser$MethodReferenceContext.class | Bin 0 -> 2421 bytes ...er$MethodReference_lf_primaryContext.class | Bin 0 -> 1352 bytes ...$MethodReference_lfno_primaryContext.class | Bin 0 -> 2337 bytes ...rser$MultiplicativeExpressionContext.class | Bin 0 -> 1514 bytes .../Java8Parser$NormalAnnotationContext.class | Bin 0 -> 1525 bytes ...Parser$NormalClassDeclarationContext.class | Bin 0 -> 2212 bytes ...er$NormalInterfaceDeclarationContext.class | Bin 0 -> 2119 bytes .../Java8Parser$NumericTypeContext.class | Bin 0 -> 1229 bytes ...ava8Parser$PackageDeclarationContext.class | Bin 0 -> 1687 bytes .../Java8Parser$PackageModifierContext.class | Bin 0 -> 1053 bytes .../Java8Parser$PackageNameContext.class | Bin 0 -> 1196 bytes ...Java8Parser$PackageOrTypeNameContext.class | Bin 0 -> 1238 bytes ...arser$PostDecrementExpressionContext.class | Bin 0 -> 1287 bytes ...pression_lf_postfixExpressionContext.class | Bin 0 -> 1113 bytes ...arser$PostIncrementExpressionContext.class | Bin 0 -> 1287 bytes ...pression_lf_postfixExpressionContext.class | Bin 0 -> 1113 bytes ...Java8Parser$PostfixExpressionContext.class | Bin 0 -> 2206 bytes ...Parser$PreDecrementExpressionContext.class | Bin 0 -> 1274 bytes ...Parser$PreIncrementExpressionContext.class | Bin 0 -> 1274 bytes .../Java-8/Java8Parser$PrimaryContext.class | Bin 0 -> 1765 bytes ...Java8Parser$PrimaryNoNewArrayContext.class | Bin 0 -> 3144 bytes ...maryNoNewArray_lf_arrayAccessContext.class | Bin 0 -> 888 bytes ...$PrimaryNoNewArray_lf_primaryContext.class | Bin 0 -> 2119 bytes ...ary_lf_arrayAccess_lf_primaryContext.class | Bin 0 -> 998 bytes ...y_lfno_arrayAccess_lf_primaryContext.class | Bin 0 -> 2050 bytes ...ryNoNewArray_lfno_arrayAccessContext.class | Bin 0 -> 3064 bytes ...rimaryNoNewArray_lfno_primaryContext.class | Bin 0 -> 3662 bytes ...y_lf_arrayAccess_lfno_primaryContext.class | Bin 0 -> 1018 bytes ...lfno_arrayAccess_lfno_primaryContext.class | Bin 0 -> 3595 bytes .../Java8Parser$PrimitiveTypeContext.class | Bin 0 -> 1582 bytes ...Java8Parser$ReceiverParameterContext.class | Bin 0 -> 1704 bytes .../Java8Parser$ReferenceTypeContext.class | Bin 0 -> 1408 bytes ...a8Parser$RelationalExpressionContext.class | Bin 0 -> 1766 bytes .../Java-8/Java8Parser$ResourceContext.class | Bin 0 -> 1943 bytes .../Java8Parser$ResourceListContext.class | Bin 0 -> 1563 bytes ...8Parser$ResourceSpecificationContext.class | Bin 0 -> 1368 bytes .../Java-8/Java8Parser$ResultContext.class | Bin 0 -> 1170 bytes .../Java8Parser$ReturnStatementContext.class | Bin 0 -> 1275 bytes .../Java8Parser$ShiftExpressionContext.class | Bin 0 -> 1656 bytes .../Java8Parser$SimpleTypeNameContext.class | Bin 0 -> 969 bytes ...arser$SingleElementAnnotationContext.class | Bin 0 -> 1528 bytes ...SingleStaticImportDeclarationContext.class | Bin 0 -> 1502 bytes ...r$SingleTypeImportDeclarationContext.class | Bin 0 -> 1326 bytes .../Java-8/Java8Parser$StatementContext.class | Bin 0 -> 2037 bytes ...va8Parser$StatementExpressionContext.class | Bin 0 -> 2348 bytes ...arser$StatementExpressionListContext.class | Bin 0 -> 1674 bytes ...ava8Parser$StatementNoShortIfContext.class | Bin 0 -> 2045 bytes ...ntWithoutTrailingSubstatementContext.class | Bin 0 -> 3142 bytes ...aticImportOnDemandDeclarationContext.class | Bin 0 -> 1505 bytes ...Java8Parser$StaticInitializerContext.class | Bin 0 -> 1211 bytes .../Java8Parser$SuperclassContext.class | Bin 0 -> 1193 bytes .../Java8Parser$SuperinterfacesContext.class | Bin 0 -> 1253 bytes .../Java8Parser$SwitchBlockContext.class | Bin 0 -> 1813 bytes ...ser$SwitchBlockStatementGroupContext.class | Bin 0 -> 1293 bytes .../Java8Parser$SwitchLabelContext.class | Bin 0 -> 1527 bytes .../Java8Parser$SwitchLabelsContext.class | Bin 0 -> 1251 bytes .../Java8Parser$SwitchStatementContext.class | Bin 0 -> 1497 bytes ...8Parser$SynchronizedStatementContext.class | Bin 0 -> 1509 bytes .../Java8Parser$ThrowStatementContext.class | Bin 0 -> 1269 bytes .../Java-8/Java8Parser$Throws_Context.class | Bin 0 -> 1209 bytes .../Java8Parser$TryStatementContext.class | Bin 0 -> 1707 bytes ...ser$TryWithResourcesStatementContext.class | Bin 0 -> 1756 bytes .../Java8Parser$TypeArgumentContext.class | Bin 0 -> 1203 bytes .../Java8Parser$TypeArgumentListContext.class | Bin 0 -> 1603 bytes .../Java8Parser$TypeArgumentsContext.class | Bin 0 -> 1282 bytes ...Parser$TypeArgumentsOrDiamondContext.class | Bin 0 -> 1316 bytes .../Java-8/Java8Parser$TypeBoundContext.class | Bin 0 -> 1794 bytes .../Java8Parser$TypeDeclarationContext.class | Bin 0 -> 1444 bytes ...TypeImportOnDemandDeclarationContext.class | Bin 0 -> 1476 bytes .../Java-8/Java8Parser$TypeNameContext.class | Bin 0 -> 1270 bytes .../Java8Parser$TypeParameterContext.class | Bin 0 -> 1634 bytes ...Java8Parser$TypeParameterListContext.class | Bin 0 -> 1613 bytes ...8Parser$TypeParameterModifierContext.class | Bin 0 -> 1083 bytes .../Java8Parser$TypeParametersContext.class | Bin 0 -> 1291 bytes .../Java8Parser$TypeVariableContext.class | Bin 0 -> 1417 bytes .../Java8Parser$UnannArrayTypeContext.class | Bin 0 -> 1627 bytes ...ser$UnannClassOrInterfaceTypeContext.class | Bin 0 -> 2547 bytes .../Java8Parser$UnannClassTypeContext.class | Bin 0 -> 1873 bytes ..._lf_unannClassOrInterfaceTypeContext.class | Bin 0 -> 1797 bytes ...fno_unannClassOrInterfaceTypeContext.class | Bin 0 -> 1387 bytes ...ava8Parser$UnannInterfaceTypeContext.class | Bin 0 -> 1084 bytes ..._lf_unannClassOrInterfaceTypeContext.class | Bin 0 -> 1345 bytes ...fno_unannClassOrInterfaceTypeContext.class | Bin 0 -> 1363 bytes ...ava8Parser$UnannPrimitiveTypeContext.class | Bin 0 -> 1240 bytes ...ava8Parser$UnannReferenceTypeContext.class | Bin 0 -> 1494 bytes .../Java-8/Java8Parser$UnannTypeContext.class | Bin 0 -> 1248 bytes ...Java8Parser$UnannTypeVariableContext.class | Bin 0 -> 984 bytes .../Java8Parser$UnaryExpressionContext.class | Bin 0 -> 1865 bytes ...r$UnaryExpressionNotPlusMinusContext.class | Bin 0 -> 1720 bytes ...ava8Parser$VariableDeclaratorContext.class | Bin 0 -> 1473 bytes ...a8Parser$VariableDeclaratorIdContext.class | Bin 0 -> 1226 bytes ...Parser$VariableDeclaratorListContext.class | Bin 0 -> 1663 bytes ...va8Parser$VariableInitializerContext.class | Bin 0 -> 1258 bytes ...arser$VariableInitializerListContext.class | Bin 0 -> 1673 bytes .../Java8Parser$VariableModifierContext.class | Bin 0 -> 1225 bytes .../Java8Parser$WhileStatementContext.class | Bin 0 -> 1483 bytes ...arser$WhileStatementNoShortIfContext.class | Bin 0 -> 1564 bytes .../Java8Parser$WildcardBoundsContext.class | Bin 0 -> 1283 bytes .../Java-8/Java8Parser$WildcardContext.class | Bin 0 -> 1572 bytes Assignment-2/Java-8/Java8Parser.class | Bin 0 -> 232736 bytes Assignment-2/Java-8/Java8Parser.g4 | 1335 + Assignment-2/Java-8/Java8Parser.interp | 461 + Assignment-2/Java-8/Java8Parser.java | 20073 ++++++++++++++++ Assignment-2/Java-8/Java8Parser.tokens | 205 + .../Java-8/Java8ParserBaseListener.class | Bin 0 -> 61952 bytes .../Java-8/Java8ParserBaseListener.java | 2871 +++ Assignment-2/Java-8/Java8ParserListener.class | Bin 0 -> 46886 bytes Assignment-2/Java-8/Java8ParserListener.java | 2369 ++ Assignment-2/antlr-4.13.2-complete.jar | Bin 0 -> 2140045 bytes .../javaparser-1.0.0/LCA_JP1_0_0$1.class | Bin 1714 -> 1714 bytes .../javaparser-1.0.0/LCA_JP1_0_0.class | Bin 940 -> 940 bytes .../javaparser-1.0.0/LCA_JP1_0_0.java | 8 +- 257 files changed, 48724 insertions(+), 7 deletions(-) create mode 100644 Assignment-2/Java-8/.antlr/Java8Parser.interp create mode 100644 Assignment-2/Java-8/.antlr/Java8Parser.java create mode 100644 Assignment-2/Java-8/.antlr/Java8Parser.tokens create mode 100644 Assignment-2/Java-8/Java8Lexer.class create mode 100644 Assignment-2/Java-8/Java8Lexer.g4 create mode 100644 Assignment-2/Java-8/Java8Lexer.interp create mode 100644 Assignment-2/Java-8/Java8Lexer.java create mode 100644 Assignment-2/Java-8/Java8Lexer.tokens create mode 100644 Assignment-2/Java-8/Java8Parser$AdditionalBoundContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AdditiveExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AmbiguousNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AndExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationTypeBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationTypeDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationTypeElementDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationTypeElementModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AnnotationTypeMemberDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArgumentListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayAccessContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayAccess_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayAccess_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayCreationExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayInitializerContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ArrayTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AssertStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AssignmentContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AssignmentExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$AssignmentOperatorContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BasicForStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BasicForStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BlockContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BlockStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BlockStatementsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$BreakStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CastExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CatchClauseContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CatchFormalParameterContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CatchTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CatchesContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassBodyDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpression_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpression_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassMemberDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassType_lf_classOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ClassType_lfno_classOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$CompilationUnitContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConditionalAndExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConditionalExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConditionalOrExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstantDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstantExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstantModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstructorBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstructorDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstructorDeclaratorContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ConstructorModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ContinueStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$DefaultValueContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$DimExprContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$DimExprsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$DimsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$DoStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ElementValueArrayInitializerContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ElementValueContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ElementValueListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ElementValuePairContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ElementValuePairListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EmptyStatement_Context.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnhancedForStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnhancedForStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumBodyDeclarationsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumConstantContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumConstantListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumConstantModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumConstantNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EnumDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$EqualityExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExceptionTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExceptionTypeListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExclusiveOrExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExplicitConstructorInvocationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExpressionNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExpressionStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ExtendsInterfacesContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FieldAccessContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FieldAccess_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FieldAccess_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FieldDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FieldModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$Finally_Context.class create mode 100644 Assignment-2/Java-8/Java8Parser$FloatingPointTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ForInitContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ForStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ForStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ForUpdateContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FormalParameterContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FormalParameterListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$FormalParametersContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$IfThenElseStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$IfThenElseStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$IfThenStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ImportDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InclusiveOrExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InferredFormalParameterListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InstanceInitializerContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$IntegralTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceMemberDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceMethodDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceMethodModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceTypeListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceType_lf_classOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$InterfaceType_lfno_classOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LabeledStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LabeledStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LambdaBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LambdaExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LambdaParametersContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LastFormalParameterContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LeftHandSideContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LiteralContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LocalVariableDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$LocalVariableDeclarationStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MarkerAnnotationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodBodyContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodDeclaratorContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodHeaderContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodInvocationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodInvocation_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodInvocation_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodReferenceContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodReference_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MethodReference_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$MultiplicativeExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$NormalAnnotationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$NormalClassDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$NormalInterfaceDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$NumericTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PackageDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PackageModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PackageNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PackageOrTypeNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PostDecrementExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PostDecrementExpression_lf_postfixExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PostIncrementExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PostIncrementExpression_lf_postfixExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PostfixExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PreDecrementExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PreIncrementExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArrayContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_arrayAccessContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_arrayAccessContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$PrimitiveTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ReceiverParameterContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ReferenceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$RelationalExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ResourceContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ResourceListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ResourceSpecificationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ResultContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ReturnStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ShiftExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SimpleTypeNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SingleElementAnnotationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SingleStaticImportDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SingleTypeImportDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StatementExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StatementExpressionListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StatementWithoutTrailingSubstatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StaticImportOnDemandDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$StaticInitializerContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SuperclassContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SuperinterfacesContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SwitchBlockContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SwitchBlockStatementGroupContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SwitchLabelContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SwitchLabelsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SwitchStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$SynchronizedStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$ThrowStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$Throws_Context.class create mode 100644 Assignment-2/Java-8/Java8Parser$TryStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TryWithResourcesStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeArgumentContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeArgumentListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeArgumentsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeArgumentsOrDiamondContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeBoundContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeImportOnDemandDeclarationContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeNameContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeParameterContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeParameterListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeParameterModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeParametersContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$TypeVariableContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannArrayTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannClassTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannClassType_lf_unannClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannClassType_lfno_unannClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannPrimitiveTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannReferenceTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannTypeContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnannTypeVariableContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnaryExpressionContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$UnaryExpressionNotPlusMinusContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableDeclaratorContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableDeclaratorIdContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableDeclaratorListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableInitializerContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableInitializerListContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$VariableModifierContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$WhileStatementContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$WhileStatementNoShortIfContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$WildcardBoundsContext.class create mode 100644 Assignment-2/Java-8/Java8Parser$WildcardContext.class create mode 100644 Assignment-2/Java-8/Java8Parser.class create mode 100644 Assignment-2/Java-8/Java8Parser.g4 create mode 100644 Assignment-2/Java-8/Java8Parser.interp create mode 100644 Assignment-2/Java-8/Java8Parser.java create mode 100644 Assignment-2/Java-8/Java8Parser.tokens create mode 100644 Assignment-2/Java-8/Java8ParserBaseListener.class create mode 100644 Assignment-2/Java-8/Java8ParserBaseListener.java create mode 100644 Assignment-2/Java-8/Java8ParserListener.class create mode 100644 Assignment-2/Java-8/Java8ParserListener.java create mode 100644 Assignment-2/antlr-4.13.2-complete.jar diff --git a/Assignment-2/Java-8/.antlr/Java8Parser.interp b/Assignment-2/Java-8/.antlr/Java8Parser.interp new file mode 100644 index 0000000..ab8fc6d --- /dev/null +++ b/Assignment-2/Java-8/.antlr/Java8Parser.interp @@ -0,0 +1,461 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'native' +'new' +'package' +'private' +'protected' +'public' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'transient' +'try' +'void' +'volatile' +'while' +null +null +null +null +null +'null' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'->' +'::' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +null +'@' +'...' +null +null +null + +token symbolic names: +null +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +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 + +rule names: +literal +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 +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 + + +atn: +[4, 1, 107, 2843, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 1, 0, 1, 0, 1, 1, 5, 1, 476, 8, 1, 10, 1, 12, 1, 479, 9, 1, 1, 1, 1, 1, 5, 1, 483, 8, 1, 10, 1, 12, 1, 486, 9, 1, 1, 1, 3, 1, 489, 8, 1, 1, 2, 1, 2, 3, 2, 493, 8, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 3, 5, 502, 8, 5, 1, 6, 1, 6, 3, 6, 506, 8, 6, 1, 6, 1, 6, 5, 6, 510, 8, 6, 10, 6, 12, 6, 513, 9, 6, 1, 7, 5, 7, 516, 8, 7, 10, 7, 12, 7, 519, 9, 7, 1, 7, 1, 7, 3, 7, 523, 8, 7, 1, 7, 1, 7, 1, 7, 5, 7, 528, 8, 7, 10, 7, 12, 7, 531, 9, 7, 1, 7, 1, 7, 3, 7, 535, 8, 7, 3, 7, 537, 8, 7, 1, 8, 1, 8, 5, 8, 541, 8, 8, 10, 8, 12, 8, 544, 9, 8, 1, 8, 1, 8, 3, 8, 548, 8, 8, 1, 9, 5, 9, 551, 8, 9, 10, 9, 12, 9, 554, 9, 9, 1, 9, 1, 9, 3, 9, 558, 8, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 5, 13, 567, 8, 13, 10, 13, 12, 13, 570, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 583, 8, 14, 1, 15, 5, 15, 586, 8, 15, 10, 15, 12, 15, 589, 9, 15, 1, 15, 1, 15, 1, 15, 5, 15, 594, 8, 15, 10, 15, 12, 15, 597, 9, 15, 1, 15, 1, 15, 5, 15, 601, 8, 15, 10, 15, 12, 15, 604, 9, 15, 1, 16, 5, 16, 607, 8, 16, 10, 16, 12, 16, 610, 9, 16, 1, 16, 1, 16, 3, 16, 614, 8, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 623, 8, 18, 10, 18, 12, 18, 626, 9, 18, 3, 18, 628, 8, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 5, 21, 640, 8, 21, 10, 21, 12, 21, 643, 9, 21, 1, 22, 1, 22, 3, 22, 647, 8, 22, 1, 23, 5, 23, 650, 8, 23, 10, 23, 12, 23, 653, 9, 23, 1, 23, 1, 23, 3, 23, 657, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 663, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 671, 8, 25, 10, 25, 12, 25, 674, 9, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 681, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 689, 8, 27, 10, 27, 12, 27, 692, 9, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 699, 8, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 709, 8, 30, 10, 30, 12, 30, 712, 9, 30, 1, 31, 3, 31, 715, 8, 31, 1, 31, 5, 31, 718, 8, 31, 10, 31, 12, 31, 721, 9, 31, 1, 31, 5, 31, 724, 8, 31, 10, 31, 12, 31, 727, 9, 31, 1, 31, 1, 31, 1, 32, 5, 32, 732, 8, 32, 10, 32, 12, 32, 735, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 747, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 776, 8, 39, 1, 40, 1, 40, 3, 40, 780, 8, 40, 1, 41, 5, 41, 783, 8, 41, 10, 41, 12, 41, 786, 9, 41, 1, 41, 1, 41, 1, 41, 3, 41, 791, 8, 41, 1, 41, 3, 41, 794, 8, 41, 1, 41, 3, 41, 797, 8, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 809, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 5, 44, 818, 8, 44, 10, 44, 12, 44, 821, 9, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 5, 47, 832, 8, 47, 10, 47, 12, 47, 835, 9, 47, 1, 48, 1, 48, 5, 48, 839, 8, 48, 10, 48, 12, 48, 842, 9, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 850, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 857, 8, 50, 1, 51, 5, 51, 860, 8, 51, 10, 51, 12, 51, 863, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 877, 8, 52, 1, 53, 1, 53, 1, 53, 5, 53, 882, 8, 53, 10, 53, 12, 53, 885, 9, 53, 1, 54, 1, 54, 1, 54, 3, 54, 890, 8, 54, 1, 55, 1, 55, 3, 55, 894, 8, 55, 1, 56, 1, 56, 3, 56, 898, 8, 56, 1, 57, 1, 57, 3, 57, 902, 8, 57, 1, 58, 1, 58, 3, 58, 906, 8, 58, 1, 59, 1, 59, 1, 59, 3, 59, 911, 8, 59, 1, 60, 1, 60, 3, 60, 915, 8, 60, 1, 60, 1, 60, 5, 60, 919, 8, 60, 10, 60, 12, 60, 922, 9, 60, 1, 61, 1, 61, 3, 61, 926, 8, 61, 1, 61, 1, 61, 1, 61, 5, 61, 931, 8, 61, 10, 61, 12, 61, 934, 9, 61, 1, 61, 1, 61, 3, 61, 938, 8, 61, 3, 61, 940, 8, 61, 1, 62, 1, 62, 5, 62, 944, 8, 62, 10, 62, 12, 62, 947, 9, 62, 1, 62, 1, 62, 3, 62, 951, 8, 62, 1, 63, 1, 63, 3, 63, 955, 8, 63, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 974, 8, 68, 1, 69, 5, 69, 977, 8, 69, 10, 69, 12, 69, 980, 9, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 995, 8, 70, 1, 71, 1, 71, 1, 71, 3, 71, 1000, 8, 71, 1, 71, 1, 71, 5, 71, 1004, 8, 71, 10, 71, 12, 71, 1007, 9, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1012, 8, 71, 3, 71, 1014, 8, 71, 1, 72, 1, 72, 3, 72, 1018, 8, 72, 1, 73, 1, 73, 1, 73, 3, 73, 1023, 8, 73, 1, 73, 1, 73, 3, 73, 1027, 8, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 3, 74, 1035, 8, 74, 1, 75, 1, 75, 1, 75, 5, 75, 1040, 8, 75, 10, 75, 12, 75, 1043, 9, 75, 1, 75, 1, 75, 1, 75, 5, 75, 1048, 8, 75, 10, 75, 12, 75, 1051, 9, 75, 3, 75, 1053, 8, 75, 1, 76, 5, 76, 1056, 8, 76, 10, 76, 12, 76, 1059, 9, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 3, 77, 1066, 8, 77, 1, 78, 5, 78, 1069, 8, 78, 10, 78, 12, 78, 1072, 9, 78, 1, 78, 1, 78, 5, 78, 1076, 8, 78, 10, 78, 12, 78, 1079, 9, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 1085, 8, 78, 1, 79, 5, 79, 1088, 8, 79, 10, 79, 12, 79, 1091, 9, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1096, 8, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 5, 81, 1106, 8, 81, 10, 81, 12, 81, 1109, 9, 81, 1, 82, 1, 82, 3, 82, 1113, 8, 82, 1, 83, 1, 83, 3, 83, 1117, 8, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 86, 5, 86, 1125, 8, 86, 10, 86, 12, 86, 1128, 9, 86, 1, 86, 1, 86, 3, 86, 1132, 8, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 1140, 8, 87, 1, 88, 3, 88, 1143, 8, 88, 1, 88, 1, 88, 1, 88, 3, 88, 1148, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 90, 1, 90, 3, 90, 1156, 8, 90, 1, 90, 3, 90, 1159, 8, 90, 1, 90, 1, 90, 1, 91, 3, 91, 1164, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1169, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1174, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1179, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1186, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1191, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1199, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1204, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1209, 8, 91, 1, 92, 5, 92, 1212, 8, 92, 10, 92, 12, 92, 1215, 9, 92, 1, 92, 1, 92, 1, 92, 3, 92, 1220, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 3, 93, 1226, 8, 93, 1, 93, 3, 93, 1229, 8, 93, 1, 93, 3, 93, 1232, 8, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 5, 94, 1239, 8, 94, 10, 94, 12, 94, 1242, 9, 94, 1, 95, 5, 95, 1245, 8, 95, 10, 95, 12, 95, 1248, 9, 95, 1, 95, 1, 95, 1, 95, 3, 95, 1253, 8, 95, 1, 95, 3, 95, 1256, 8, 95, 1, 95, 3, 95, 1259, 8, 95, 1, 96, 1, 96, 1, 97, 1, 97, 5, 97, 1265, 8, 97, 10, 97, 12, 97, 1268, 9, 97, 1, 98, 1, 98, 3, 98, 1272, 8, 98, 1, 99, 5, 99, 1275, 8, 99, 10, 99, 12, 99, 1278, 9, 99, 1, 99, 1, 99, 1, 99, 3, 99, 1283, 8, 99, 1, 99, 3, 99, 1286, 8, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 1297, 8, 100, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 5, 102, 1304, 8, 102, 10, 102, 12, 102, 1307, 9, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 1316, 8, 103, 1, 104, 5, 104, 1319, 8, 104, 10, 104, 12, 104, 1322, 9, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1332, 8, 105, 1, 106, 5, 106, 1335, 8, 106, 10, 106, 12, 106, 1338, 9, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1349, 8, 107, 1, 108, 5, 108, 1352, 8, 108, 10, 108, 12, 108, 1355, 9, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 5, 109, 1364, 8, 109, 10, 109, 12, 109, 1367, 9, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 3, 110, 1376, 8, 110, 1, 111, 5, 111, 1379, 8, 111, 10, 111, 12, 111, 1382, 9, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 1389, 8, 111, 1, 111, 3, 111, 1392, 8, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 3, 112, 1399, 8, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 3, 114, 1407, 8, 114, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 1413, 8, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 5, 116, 1420, 8, 116, 10, 116, 12, 116, 1423, 9, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 3, 118, 1432, 8, 118, 1, 119, 1, 119, 3, 119, 1436, 8, 119, 1, 119, 3, 119, 1439, 8, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 5, 120, 1446, 8, 120, 10, 120, 12, 120, 1449, 9, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 3, 123, 1462, 8, 123, 1, 123, 3, 123, 1465, 8, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 5, 124, 1472, 8, 124, 10, 124, 12, 124, 1475, 9, 124, 1, 125, 1, 125, 3, 125, 1479, 8, 125, 1, 125, 1, 125, 1, 126, 4, 126, 1484, 8, 126, 11, 126, 12, 126, 1485, 1, 127, 1, 127, 1, 127, 3, 127, 1491, 8, 127, 1, 128, 1, 128, 1, 128, 1, 129, 5, 129, 1497, 8, 129, 10, 129, 12, 129, 1500, 9, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 1511, 8, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 1518, 8, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 1532, 8, 132, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 1554, 8, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 3, 141, 1588, 8, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 5, 143, 1598, 8, 143, 10, 143, 12, 143, 1601, 9, 143, 1, 143, 5, 143, 1604, 8, 143, 10, 143, 12, 143, 1607, 9, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 5, 145, 1616, 8, 145, 10, 145, 12, 145, 1619, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 1631, 8, 146, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 3, 151, 1657, 8, 151, 1, 152, 1, 152, 3, 152, 1661, 8, 152, 1, 153, 1, 153, 1, 153, 3, 153, 1666, 8, 153, 1, 153, 1, 153, 3, 153, 1670, 8, 153, 1, 153, 1, 153, 3, 153, 1674, 8, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 3, 154, 1682, 8, 154, 1, 154, 1, 154, 3, 154, 1686, 8, 154, 1, 154, 1, 154, 3, 154, 1690, 8, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 3, 155, 1697, 8, 155, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 5, 157, 1704, 8, 157, 10, 157, 12, 157, 1707, 9, 157, 1, 158, 1, 158, 1, 158, 5, 158, 1712, 8, 158, 10, 158, 12, 158, 1715, 9, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 5, 159, 1727, 8, 159, 10, 159, 12, 159, 1730, 9, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 3, 160, 1741, 8, 160, 1, 160, 1, 160, 1, 161, 1, 161, 3, 161, 1747, 8, 161, 1, 161, 1, 161, 1, 162, 1, 162, 3, 162, 1753, 8, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 3, 165, 1774, 8, 165, 1, 165, 1, 165, 1, 165, 3, 165, 1779, 8, 165, 1, 166, 1, 166, 5, 166, 1783, 8, 166, 10, 166, 12, 166, 1786, 9, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 5, 168, 1795, 8, 168, 10, 168, 12, 168, 1798, 9, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 5, 169, 1806, 8, 169, 10, 169, 12, 169, 1809, 9, 169, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 3, 171, 1818, 8, 171, 1, 171, 3, 171, 1821, 8, 171, 1, 172, 1, 172, 1, 172, 3, 172, 1826, 8, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 5, 173, 1833, 8, 173, 10, 173, 12, 173, 1836, 9, 173, 1, 174, 5, 174, 1839, 8, 174, 10, 174, 12, 174, 1842, 9, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 3, 175, 1851, 8, 175, 1, 175, 5, 175, 1854, 8, 175, 10, 175, 12, 175, 1857, 9, 175, 1, 176, 1, 176, 1, 176, 1, 176, 5, 176, 1863, 8, 176, 10, 176, 12, 176, 1866, 9, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 1888, 8, 176, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 5, 178, 1896, 8, 178, 10, 178, 12, 178, 1899, 9, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 1920, 8, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 1927, 8, 179, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 3, 181, 1935, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 5, 182, 1941, 8, 182, 10, 182, 12, 182, 1944, 9, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 5, 182, 1952, 8, 182, 10, 182, 12, 182, 1955, 9, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 1977, 8, 182, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 5, 184, 1985, 8, 184, 10, 184, 12, 184, 1988, 9, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 5, 184, 1996, 8, 184, 10, 184, 12, 184, 1999, 9, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 3, 184, 2020, 8, 184, 1, 185, 1, 185, 3, 185, 2024, 8, 185, 1, 185, 5, 185, 2027, 8, 185, 10, 185, 12, 185, 2030, 9, 185, 1, 185, 1, 185, 1, 185, 5, 185, 2035, 8, 185, 10, 185, 12, 185, 2038, 9, 185, 1, 185, 5, 185, 2041, 8, 185, 10, 185, 12, 185, 2044, 9, 185, 1, 185, 3, 185, 2047, 8, 185, 1, 185, 1, 185, 3, 185, 2051, 8, 185, 1, 185, 1, 185, 3, 185, 2055, 8, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2061, 8, 185, 1, 185, 5, 185, 2064, 8, 185, 10, 185, 12, 185, 2067, 9, 185, 1, 185, 1, 185, 3, 185, 2071, 8, 185, 1, 185, 1, 185, 3, 185, 2075, 8, 185, 1, 185, 1, 185, 3, 185, 2079, 8, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2085, 8, 185, 1, 185, 5, 185, 2088, 8, 185, 10, 185, 12, 185, 2091, 9, 185, 1, 185, 1, 185, 3, 185, 2095, 8, 185, 1, 185, 1, 185, 3, 185, 2099, 8, 185, 1, 185, 1, 185, 3, 185, 2103, 8, 185, 3, 185, 2105, 8, 185, 1, 186, 1, 186, 1, 186, 3, 186, 2110, 8, 186, 1, 186, 5, 186, 2113, 8, 186, 10, 186, 12, 186, 2116, 9, 186, 1, 186, 1, 186, 3, 186, 2120, 8, 186, 1, 186, 1, 186, 3, 186, 2124, 8, 186, 1, 186, 1, 186, 3, 186, 2128, 8, 186, 1, 187, 1, 187, 3, 187, 2132, 8, 187, 1, 187, 5, 187, 2135, 8, 187, 10, 187, 12, 187, 2138, 9, 187, 1, 187, 1, 187, 1, 187, 5, 187, 2143, 8, 187, 10, 187, 12, 187, 2146, 9, 187, 1, 187, 5, 187, 2149, 8, 187, 10, 187, 12, 187, 2152, 9, 187, 1, 187, 3, 187, 2155, 8, 187, 1, 187, 1, 187, 3, 187, 2159, 8, 187, 1, 187, 1, 187, 3, 187, 2163, 8, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2169, 8, 187, 1, 187, 5, 187, 2172, 8, 187, 10, 187, 12, 187, 2175, 9, 187, 1, 187, 1, 187, 3, 187, 2179, 8, 187, 1, 187, 1, 187, 3, 187, 2183, 8, 187, 1, 187, 1, 187, 3, 187, 2187, 8, 187, 3, 187, 2189, 8, 187, 1, 188, 1, 188, 1, 188, 3, 188, 2194, 8, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 2209, 8, 189, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2223, 8, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 3, 192, 2235, 8, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 5, 192, 2242, 8, 192, 10, 192, 12, 192, 2245, 9, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 5, 193, 2256, 8, 193, 10, 193, 12, 193, 2259, 9, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 3, 194, 2271, 8, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 5, 194, 2278, 8, 194, 10, 194, 12, 194, 2281, 9, 194, 1, 195, 1, 195, 1, 195, 3, 195, 2286, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2293, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2298, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2305, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2310, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2317, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2322, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2329, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2334, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2342, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2347, 8, 195, 1, 195, 1, 195, 3, 195, 2351, 8, 195, 1, 196, 1, 196, 3, 196, 2355, 8, 196, 1, 196, 1, 196, 1, 196, 3, 196, 2360, 8, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 3, 197, 2367, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2374, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2379, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2386, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2391, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2398, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2403, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2411, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2416, 8, 197, 1, 197, 1, 197, 3, 197, 2420, 8, 197, 1, 198, 1, 198, 1, 198, 5, 198, 2425, 8, 198, 10, 198, 12, 198, 2428, 9, 198, 1, 199, 1, 199, 1, 199, 3, 199, 2433, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2440, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2447, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2454, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2462, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2469, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2477, 8, 199, 1, 200, 1, 200, 3, 200, 2481, 8, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 3, 201, 2488, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2495, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2502, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2510, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2517, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2525, 8, 201, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2531, 8, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2537, 8, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2549, 8, 202, 1, 203, 1, 203, 5, 203, 2553, 8, 203, 10, 203, 12, 203, 2556, 9, 203, 1, 204, 5, 204, 2559, 8, 204, 10, 204, 12, 204, 2562, 9, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 206, 1, 206, 3, 206, 2572, 8, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 3, 208, 2581, 8, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 2588, 8, 208, 1, 209, 1, 209, 1, 209, 5, 209, 2593, 8, 209, 10, 209, 12, 209, 2596, 9, 209, 1, 210, 1, 210, 3, 210, 2600, 8, 210, 1, 211, 1, 211, 3, 211, 2604, 8, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 3, 213, 2613, 8, 213, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 2624, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 5, 216, 2632, 8, 216, 10, 216, 12, 216, 2635, 9, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 5, 217, 2643, 8, 217, 10, 217, 12, 217, 2646, 9, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 5, 218, 2654, 8, 218, 10, 218, 12, 218, 2657, 9, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 5, 219, 2665, 8, 219, 10, 219, 12, 219, 2668, 9, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 5, 220, 2676, 8, 220, 10, 220, 12, 220, 2679, 9, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 5, 221, 2690, 8, 221, 10, 221, 12, 221, 2693, 9, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 5, 222, 2713, 8, 222, 10, 222, 12, 222, 2716, 9, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 5, 223, 2734, 8, 223, 10, 223, 12, 223, 2737, 9, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 5, 224, 2748, 8, 224, 10, 224, 12, 224, 2751, 9, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 5, 225, 2765, 8, 225, 10, 225, 12, 225, 2768, 9, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 3, 226, 2777, 8, 226, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 2791, 8, 229, 1, 230, 1, 230, 3, 230, 2795, 8, 230, 1, 230, 1, 230, 5, 230, 2799, 8, 230, 10, 230, 12, 230, 2802, 9, 230, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 5, 235, 2822, 8, 235, 10, 235, 12, 235, 2825, 9, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 5, 235, 2833, 8, 235, 10, 235, 12, 235, 2836, 9, 235, 1, 235, 1, 235, 1, 235, 3, 235, 2841, 8, 235, 1, 235, 0, 13, 50, 54, 60, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 236, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 0, 4, 1, 0, 51, 56, 5, 0, 5, 5, 8, 8, 27, 27, 29, 29, 37, 37, 2, 0, 14, 14, 20, 20, 2, 0, 66, 66, 91, 101, 3084, 0, 472, 1, 0, 0, 0, 2, 488, 1, 0, 0, 0, 4, 492, 1, 0, 0, 0, 6, 494, 1, 0, 0, 0, 8, 496, 1, 0, 0, 0, 10, 501, 1, 0, 0, 0, 12, 505, 1, 0, 0, 0, 14, 536, 1, 0, 0, 0, 16, 538, 1, 0, 0, 0, 18, 552, 1, 0, 0, 0, 20, 559, 1, 0, 0, 0, 22, 561, 1, 0, 0, 0, 24, 563, 1, 0, 0, 0, 26, 568, 1, 0, 0, 0, 28, 582, 1, 0, 0, 0, 30, 587, 1, 0, 0, 0, 32, 608, 1, 0, 0, 0, 34, 615, 1, 0, 0, 0, 36, 627, 1, 0, 0, 0, 38, 629, 1, 0, 0, 0, 40, 632, 1, 0, 0, 0, 42, 636, 1, 0, 0, 0, 44, 646, 1, 0, 0, 0, 46, 651, 1, 0, 0, 0, 48, 662, 1, 0, 0, 0, 50, 664, 1, 0, 0, 0, 52, 680, 1, 0, 0, 0, 54, 682, 1, 0, 0, 0, 56, 698, 1, 0, 0, 0, 58, 700, 1, 0, 0, 0, 60, 702, 1, 0, 0, 0, 62, 714, 1, 0, 0, 0, 64, 733, 1, 0, 0, 0, 66, 740, 1, 0, 0, 0, 68, 746, 1, 0, 0, 0, 70, 748, 1, 0, 0, 0, 72, 752, 1, 0, 0, 0, 74, 758, 1, 0, 0, 0, 76, 765, 1, 0, 0, 0, 78, 775, 1, 0, 0, 0, 80, 779, 1, 0, 0, 0, 82, 784, 1, 0, 0, 0, 84, 808, 1, 0, 0, 0, 86, 810, 1, 0, 0, 0, 88, 814, 1, 0, 0, 0, 90, 822, 1, 0, 0, 0, 92, 825, 1, 0, 0, 0, 94, 828, 1, 0, 0, 0, 96, 836, 1, 0, 0, 0, 98, 849, 1, 0, 0, 0, 100, 856, 1, 0, 0, 0, 102, 861, 1, 0, 0, 0, 104, 876, 1, 0, 0, 0, 106, 878, 1, 0, 0, 0, 108, 886, 1, 0, 0, 0, 110, 891, 1, 0, 0, 0, 112, 897, 1, 0, 0, 0, 114, 901, 1, 0, 0, 0, 116, 905, 1, 0, 0, 0, 118, 910, 1, 0, 0, 0, 120, 914, 1, 0, 0, 0, 122, 939, 1, 0, 0, 0, 124, 941, 1, 0, 0, 0, 126, 952, 1, 0, 0, 0, 128, 956, 1, 0, 0, 0, 130, 958, 1, 0, 0, 0, 132, 960, 1, 0, 0, 0, 134, 962, 1, 0, 0, 0, 136, 973, 1, 0, 0, 0, 138, 978, 1, 0, 0, 0, 140, 994, 1, 0, 0, 0, 142, 1013, 1, 0, 0, 0, 144, 1017, 1, 0, 0, 0, 146, 1019, 1, 0, 0, 0, 148, 1034, 1, 0, 0, 0, 150, 1052, 1, 0, 0, 0, 152, 1057, 1, 0, 0, 0, 154, 1065, 1, 0, 0, 0, 156, 1084, 1, 0, 0, 0, 158, 1089, 1, 0, 0, 0, 160, 1099, 1, 0, 0, 0, 162, 1102, 1, 0, 0, 0, 164, 1112, 1, 0, 0, 0, 166, 1116, 1, 0, 0, 0, 168, 1118, 1, 0, 0, 0, 170, 1120, 1, 0, 0, 0, 172, 1126, 1, 0, 0, 0, 174, 1139, 1, 0, 0, 0, 176, 1142, 1, 0, 0, 0, 178, 1151, 1, 0, 0, 0, 180, 1153, 1, 0, 0, 0, 182, 1208, 1, 0, 0, 0, 184, 1213, 1, 0, 0, 0, 186, 1223, 1, 0, 0, 0, 188, 1235, 1, 0, 0, 0, 190, 1246, 1, 0, 0, 0, 192, 1260, 1, 0, 0, 0, 194, 1262, 1, 0, 0, 0, 196, 1271, 1, 0, 0, 0, 198, 1276, 1, 0, 0, 0, 200, 1296, 1, 0, 0, 0, 202, 1298, 1, 0, 0, 0, 204, 1301, 1, 0, 0, 0, 206, 1315, 1, 0, 0, 0, 208, 1320, 1, 0, 0, 0, 210, 1331, 1, 0, 0, 0, 212, 1336, 1, 0, 0, 0, 214, 1348, 1, 0, 0, 0, 216, 1353, 1, 0, 0, 0, 218, 1361, 1, 0, 0, 0, 220, 1375, 1, 0, 0, 0, 222, 1380, 1, 0, 0, 0, 224, 1398, 1, 0, 0, 0, 226, 1400, 1, 0, 0, 0, 228, 1406, 1, 0, 0, 0, 230, 1408, 1, 0, 0, 0, 232, 1416, 1, 0, 0, 0, 234, 1424, 1, 0, 0, 0, 236, 1431, 1, 0, 0, 0, 238, 1433, 1, 0, 0, 0, 240, 1442, 1, 0, 0, 0, 242, 1450, 1, 0, 0, 0, 244, 1453, 1, 0, 0, 0, 246, 1459, 1, 0, 0, 0, 248, 1468, 1, 0, 0, 0, 250, 1476, 1, 0, 0, 0, 252, 1483, 1, 0, 0, 0, 254, 1490, 1, 0, 0, 0, 256, 1492, 1, 0, 0, 0, 258, 1498, 1, 0, 0, 0, 260, 1510, 1, 0, 0, 0, 262, 1517, 1, 0, 0, 0, 264, 1531, 1, 0, 0, 0, 266, 1533, 1, 0, 0, 0, 268, 1535, 1, 0, 0, 0, 270, 1539, 1, 0, 0, 0, 272, 1543, 1, 0, 0, 0, 274, 1553, 1, 0, 0, 0, 276, 1555, 1, 0, 0, 0, 278, 1561, 1, 0, 0, 0, 280, 1569, 1, 0, 0, 0, 282, 1587, 1, 0, 0, 0, 284, 1589, 1, 0, 0, 0, 286, 1595, 1, 0, 0, 0, 288, 1610, 1, 0, 0, 0, 290, 1613, 1, 0, 0, 0, 292, 1630, 1, 0, 0, 0, 294, 1632, 1, 0, 0, 0, 296, 1634, 1, 0, 0, 0, 298, 1640, 1, 0, 0, 0, 300, 1646, 1, 0, 0, 0, 302, 1656, 1, 0, 0, 0, 304, 1660, 1, 0, 0, 0, 306, 1662, 1, 0, 0, 0, 308, 1678, 1, 0, 0, 0, 310, 1696, 1, 0, 0, 0, 312, 1698, 1, 0, 0, 0, 314, 1700, 1, 0, 0, 0, 316, 1708, 1, 0, 0, 0, 318, 1723, 1, 0, 0, 0, 320, 1738, 1, 0, 0, 0, 322, 1744, 1, 0, 0, 0, 324, 1750, 1, 0, 0, 0, 326, 1756, 1, 0, 0, 0, 328, 1760, 1, 0, 0, 0, 330, 1778, 1, 0, 0, 0, 332, 1780, 1, 0, 0, 0, 334, 1787, 1, 0, 0, 0, 336, 1796, 1, 0, 0, 0, 338, 1802, 1, 0, 0, 0, 340, 1810, 1, 0, 0, 0, 342, 1813, 1, 0, 0, 0, 344, 1822, 1, 0, 0, 0, 346, 1829, 1, 0, 0, 0, 348, 1840, 1, 0, 0, 0, 350, 1850, 1, 0, 0, 0, 352, 1887, 1, 0, 0, 0, 354, 1889, 1, 0, 0, 0, 356, 1919, 1, 0, 0, 0, 358, 1926, 1, 0, 0, 0, 360, 1928, 1, 0, 0, 0, 362, 1934, 1, 0, 0, 0, 364, 1976, 1, 0, 0, 0, 366, 1978, 1, 0, 0, 0, 368, 2019, 1, 0, 0, 0, 370, 2104, 1, 0, 0, 0, 372, 2106, 1, 0, 0, 0, 374, 2188, 1, 0, 0, 0, 376, 2193, 1, 0, 0, 0, 378, 2208, 1, 0, 0, 0, 380, 2210, 1, 0, 0, 0, 382, 2222, 1, 0, 0, 0, 384, 2234, 1, 0, 0, 0, 386, 2246, 1, 0, 0, 0, 388, 2270, 1, 0, 0, 0, 390, 2350, 1, 0, 0, 0, 392, 2352, 1, 0, 0, 0, 394, 2419, 1, 0, 0, 0, 396, 2421, 1, 0, 0, 0, 398, 2476, 1, 0, 0, 0, 400, 2478, 1, 0, 0, 0, 402, 2524, 1, 0, 0, 0, 404, 2548, 1, 0, 0, 0, 406, 2550, 1, 0, 0, 0, 408, 2560, 1, 0, 0, 0, 410, 2567, 1, 0, 0, 0, 412, 2571, 1, 0, 0, 0, 414, 2573, 1, 0, 0, 0, 416, 2587, 1, 0, 0, 0, 418, 2589, 1, 0, 0, 0, 420, 2599, 1, 0, 0, 0, 422, 2603, 1, 0, 0, 0, 424, 2605, 1, 0, 0, 0, 426, 2612, 1, 0, 0, 0, 428, 2614, 1, 0, 0, 0, 430, 2623, 1, 0, 0, 0, 432, 2625, 1, 0, 0, 0, 434, 2636, 1, 0, 0, 0, 436, 2647, 1, 0, 0, 0, 438, 2658, 1, 0, 0, 0, 440, 2669, 1, 0, 0, 0, 442, 2680, 1, 0, 0, 0, 444, 2694, 1, 0, 0, 0, 446, 2717, 1, 0, 0, 0, 448, 2738, 1, 0, 0, 0, 450, 2752, 1, 0, 0, 0, 452, 2776, 1, 0, 0, 0, 454, 2778, 1, 0, 0, 0, 456, 2781, 1, 0, 0, 0, 458, 2790, 1, 0, 0, 0, 460, 2794, 1, 0, 0, 0, 462, 2803, 1, 0, 0, 0, 464, 2806, 1, 0, 0, 0, 466, 2808, 1, 0, 0, 0, 468, 2811, 1, 0, 0, 0, 470, 2840, 1, 0, 0, 0, 472, 473, 7, 0, 0, 0, 473, 1, 1, 0, 0, 0, 474, 476, 3, 228, 114, 0, 475, 474, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 480, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480, 489, 3, 4, 2, 0, 481, 483, 3, 228, 114, 0, 482, 481, 1, 0, 0, 0, 483, 486, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 487, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 487, 489, 5, 3, 0, 0, 488, 477, 1, 0, 0, 0, 488, 484, 1, 0, 0, 0, 489, 3, 1, 0, 0, 0, 490, 493, 3, 6, 3, 0, 491, 493, 3, 8, 4, 0, 492, 490, 1, 0, 0, 0, 492, 491, 1, 0, 0, 0, 493, 5, 1, 0, 0, 0, 494, 495, 7, 1, 0, 0, 495, 7, 1, 0, 0, 0, 496, 497, 7, 2, 0, 0, 497, 9, 1, 0, 0, 0, 498, 502, 3, 12, 6, 0, 499, 502, 3, 26, 13, 0, 500, 502, 3, 28, 14, 0, 501, 498, 1, 0, 0, 0, 501, 499, 1, 0, 0, 0, 501, 500, 1, 0, 0, 0, 502, 11, 1, 0, 0, 0, 503, 506, 3, 18, 9, 0, 504, 506, 3, 24, 12, 0, 505, 503, 1, 0, 0, 0, 505, 504, 1, 0, 0, 0, 506, 511, 1, 0, 0, 0, 507, 510, 3, 16, 8, 0, 508, 510, 3, 22, 11, 0, 509, 507, 1, 0, 0, 0, 509, 508, 1, 0, 0, 0, 510, 513, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 13, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 514, 516, 3, 228, 114, 0, 515, 514, 1, 0, 0, 0, 516, 519, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 520, 1, 0, 0, 0, 519, 517, 1, 0, 0, 0, 520, 522, 5, 102, 0, 0, 521, 523, 3, 40, 20, 0, 522, 521, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 537, 1, 0, 0, 0, 524, 525, 3, 12, 6, 0, 525, 529, 5, 65, 0, 0, 526, 528, 3, 228, 114, 0, 527, 526, 1, 0, 0, 0, 528, 531, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 532, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 532, 534, 5, 102, 0, 0, 533, 535, 3, 40, 20, 0, 534, 533, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 537, 1, 0, 0, 0, 536, 517, 1, 0, 0, 0, 536, 524, 1, 0, 0, 0, 537, 15, 1, 0, 0, 0, 538, 542, 5, 65, 0, 0, 539, 541, 3, 228, 114, 0, 540, 539, 1, 0, 0, 0, 541, 544, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0, 0, 543, 545, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 545, 547, 5, 102, 0, 0, 546, 548, 3, 40, 20, 0, 547, 546, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 17, 1, 0, 0, 0, 549, 551, 3, 228, 114, 0, 550, 549, 1, 0, 0, 0, 551, 554, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 555, 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 555, 557, 5, 102, 0, 0, 556, 558, 3, 40, 20, 0, 557, 556, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 19, 1, 0, 0, 0, 559, 560, 3, 14, 7, 0, 560, 21, 1, 0, 0, 0, 561, 562, 3, 16, 8, 0, 562, 23, 1, 0, 0, 0, 563, 564, 3, 18, 9, 0, 564, 25, 1, 0, 0, 0, 565, 567, 3, 228, 114, 0, 566, 565, 1, 0, 0, 0, 567, 570, 1, 0, 0, 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 571, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 571, 572, 5, 102, 0, 0, 572, 27, 1, 0, 0, 0, 573, 574, 3, 2, 1, 0, 574, 575, 3, 30, 15, 0, 575, 583, 1, 0, 0, 0, 576, 577, 3, 12, 6, 0, 577, 578, 3, 30, 15, 0, 578, 583, 1, 0, 0, 0, 579, 580, 3, 26, 13, 0, 580, 581, 3, 30, 15, 0, 581, 583, 1, 0, 0, 0, 582, 573, 1, 0, 0, 0, 582, 576, 1, 0, 0, 0, 582, 579, 1, 0, 0, 0, 583, 29, 1, 0, 0, 0, 584, 586, 3, 228, 114, 0, 585, 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588, 590, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 591, 5, 61, 0, 0, 591, 602, 5, 62, 0, 0, 592, 594, 3, 228, 114, 0, 593, 592, 1, 0, 0, 0, 594, 597, 1, 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 598, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 599, 5, 61, 0, 0, 599, 601, 5, 62, 0, 0, 600, 595, 1, 0, 0, 0, 601, 604, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 31, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 605, 607, 3, 34, 17, 0, 606, 605, 1, 0, 0, 0, 607, 610, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 611, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 611, 613, 5, 102, 0, 0, 612, 614, 3, 36, 18, 0, 613, 612, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 33, 1, 0, 0, 0, 615, 616, 3, 228, 114, 0, 616, 35, 1, 0, 0, 0, 617, 618, 5, 17, 0, 0, 618, 628, 3, 26, 13, 0, 619, 620, 5, 17, 0, 0, 620, 624, 3, 12, 6, 0, 621, 623, 3, 38, 19, 0, 622, 621, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 617, 1, 0, 0, 0, 627, 619, 1, 0, 0, 0, 628, 37, 1, 0, 0, 0, 629, 630, 5, 85, 0, 0, 630, 631, 3, 20, 10, 0, 631, 39, 1, 0, 0, 0, 632, 633, 5, 68, 0, 0, 633, 634, 3, 42, 21, 0, 634, 635, 5, 67, 0, 0, 635, 41, 1, 0, 0, 0, 636, 641, 3, 44, 22, 0, 637, 638, 5, 64, 0, 0, 638, 640, 3, 44, 22, 0, 639, 637, 1, 0, 0, 0, 640, 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 43, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 644, 647, 3, 10, 5, 0, 645, 647, 3, 46, 23, 0, 646, 644, 1, 0, 0, 0, 646, 645, 1, 0, 0, 0, 647, 45, 1, 0, 0, 0, 648, 650, 3, 228, 114, 0, 649, 648, 1, 0, 0, 0, 650, 653, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 654, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 654, 656, 5, 71, 0, 0, 655, 657, 3, 48, 24, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 47, 1, 0, 0, 0, 658, 659, 5, 17, 0, 0, 659, 663, 3, 10, 5, 0, 660, 661, 5, 40, 0, 0, 661, 663, 3, 10, 5, 0, 662, 658, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 49, 1, 0, 0, 0, 664, 665, 6, 25, -1, 0, 665, 666, 5, 102, 0, 0, 666, 672, 1, 0, 0, 0, 667, 668, 10, 1, 0, 0, 668, 669, 5, 65, 0, 0, 669, 671, 5, 102, 0, 0, 670, 667, 1, 0, 0, 0, 671, 674, 1, 0, 0, 0, 672, 670, 1, 0, 0, 0, 672, 673, 1, 0, 0, 0, 673, 51, 1, 0, 0, 0, 674, 672, 1, 0, 0, 0, 675, 681, 5, 102, 0, 0, 676, 677, 3, 54, 27, 0, 677, 678, 5, 65, 0, 0, 678, 679, 5, 102, 0, 0, 679, 681, 1, 0, 0, 0, 680, 675, 1, 0, 0, 0, 680, 676, 1, 0, 0, 0, 681, 53, 1, 0, 0, 0, 682, 683, 6, 27, -1, 0, 683, 684, 5, 102, 0, 0, 684, 690, 1, 0, 0, 0, 685, 686, 10, 1, 0, 0, 686, 687, 5, 65, 0, 0, 687, 689, 5, 102, 0, 0, 688, 685, 1, 0, 0, 0, 689, 692, 1, 0, 0, 0, 690, 688, 1, 0, 0, 0, 690, 691, 1, 0, 0, 0, 691, 55, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 693, 699, 5, 102, 0, 0, 694, 695, 3, 60, 30, 0, 695, 696, 5, 65, 0, 0, 696, 697, 5, 102, 0, 0, 697, 699, 1, 0, 0, 0, 698, 693, 1, 0, 0, 0, 698, 694, 1, 0, 0, 0, 699, 57, 1, 0, 0, 0, 700, 701, 5, 102, 0, 0, 701, 59, 1, 0, 0, 0, 702, 703, 6, 30, -1, 0, 703, 704, 5, 102, 0, 0, 704, 710, 1, 0, 0, 0, 705, 706, 10, 1, 0, 0, 706, 707, 5, 65, 0, 0, 707, 709, 5, 102, 0, 0, 708, 705, 1, 0, 0, 0, 709, 712, 1, 0, 0, 0, 710, 708, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 61, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 713, 715, 3, 64, 32, 0, 714, 713, 1, 0, 0, 0, 714, 715, 1, 0, 0, 0, 715, 719, 1, 0, 0, 0, 716, 718, 3, 68, 34, 0, 717, 716, 1, 0, 0, 0, 718, 721, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, 725, 1, 0, 0, 0, 721, 719, 1, 0, 0, 0, 722, 724, 3, 78, 39, 0, 723, 722, 1, 0, 0, 0, 724, 727, 1, 0, 0, 0, 725, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 728, 1, 0, 0, 0, 727, 725, 1, 0, 0, 0, 728, 729, 5, 0, 0, 1, 729, 63, 1, 0, 0, 0, 730, 732, 3, 66, 33, 0, 731, 730, 1, 0, 0, 0, 732, 735, 1, 0, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 736, 1, 0, 0, 0, 735, 733, 1, 0, 0, 0, 736, 737, 5, 32, 0, 0, 737, 738, 3, 50, 25, 0, 738, 739, 5, 63, 0, 0, 739, 65, 1, 0, 0, 0, 740, 741, 3, 228, 114, 0, 741, 67, 1, 0, 0, 0, 742, 747, 3, 70, 35, 0, 743, 747, 3, 72, 36, 0, 744, 747, 3, 74, 37, 0, 745, 747, 3, 76, 38, 0, 746, 742, 1, 0, 0, 0, 746, 743, 1, 0, 0, 0, 746, 744, 1, 0, 0, 0, 746, 745, 1, 0, 0, 0, 747, 69, 1, 0, 0, 0, 748, 749, 5, 25, 0, 0, 749, 750, 3, 52, 26, 0, 750, 751, 5, 63, 0, 0, 751, 71, 1, 0, 0, 0, 752, 753, 5, 25, 0, 0, 753, 754, 3, 54, 27, 0, 754, 755, 5, 65, 0, 0, 755, 756, 5, 83, 0, 0, 756, 757, 5, 63, 0, 0, 757, 73, 1, 0, 0, 0, 758, 759, 5, 25, 0, 0, 759, 760, 5, 38, 0, 0, 760, 761, 3, 52, 26, 0, 761, 762, 5, 65, 0, 0, 762, 763, 5, 102, 0, 0, 763, 764, 5, 63, 0, 0, 764, 75, 1, 0, 0, 0, 765, 766, 5, 25, 0, 0, 766, 767, 5, 38, 0, 0, 767, 768, 3, 52, 26, 0, 768, 769, 5, 65, 0, 0, 769, 770, 5, 83, 0, 0, 770, 771, 5, 63, 0, 0, 771, 77, 1, 0, 0, 0, 772, 776, 3, 80, 40, 0, 773, 776, 3, 196, 98, 0, 774, 776, 5, 63, 0, 0, 775, 772, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 775, 774, 1, 0, 0, 0, 776, 79, 1, 0, 0, 0, 777, 780, 3, 82, 41, 0, 778, 780, 3, 184, 92, 0, 779, 777, 1, 0, 0, 0, 779, 778, 1, 0, 0, 0, 780, 81, 1, 0, 0, 0, 781, 783, 3, 84, 42, 0, 782, 781, 1, 0, 0, 0, 783, 786, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 787, 1, 0, 0, 0, 786, 784, 1, 0, 0, 0, 787, 788, 5, 9, 0, 0, 788, 790, 5, 102, 0, 0, 789, 791, 3, 86, 43, 0, 790, 789, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 793, 1, 0, 0, 0, 792, 794, 3, 90, 45, 0, 793, 792, 1, 0, 0, 0, 793, 794, 1, 0, 0, 0, 794, 796, 1, 0, 0, 0, 795, 797, 3, 92, 46, 0, 796, 795, 1, 0, 0, 0, 796, 797, 1, 0, 0, 0, 797, 798, 1, 0, 0, 0, 798, 799, 3, 96, 48, 0, 799, 83, 1, 0, 0, 0, 800, 809, 3, 228, 114, 0, 801, 809, 5, 35, 0, 0, 802, 809, 5, 34, 0, 0, 803, 809, 5, 33, 0, 0, 804, 809, 5, 1, 0, 0, 805, 809, 5, 38, 0, 0, 806, 809, 5, 18, 0, 0, 807, 809, 5, 39, 0, 0, 808, 800, 1, 0, 0, 0, 808, 801, 1, 0, 0, 0, 808, 802, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, 804, 1, 0, 0, 0, 808, 805, 1, 0, 0, 0, 808, 806, 1, 0, 0, 0, 808, 807, 1, 0, 0, 0, 809, 85, 1, 0, 0, 0, 810, 811, 5, 68, 0, 0, 811, 812, 3, 88, 44, 0, 812, 813, 5, 67, 0, 0, 813, 87, 1, 0, 0, 0, 814, 819, 3, 32, 16, 0, 815, 816, 5, 64, 0, 0, 816, 818, 3, 32, 16, 0, 817, 815, 1, 0, 0, 0, 818, 821, 1, 0, 0, 0, 819, 817, 1, 0, 0, 0, 819, 820, 1, 0, 0, 0, 820, 89, 1, 0, 0, 0, 821, 819, 1, 0, 0, 0, 822, 823, 5, 17, 0, 0, 823, 824, 3, 14, 7, 0, 824, 91, 1, 0, 0, 0, 825, 826, 5, 24, 0, 0, 826, 827, 3, 94, 47, 0, 827, 93, 1, 0, 0, 0, 828, 833, 3, 20, 10, 0, 829, 830, 5, 64, 0, 0, 830, 832, 3, 20, 10, 0, 831, 829, 1, 0, 0, 0, 832, 835, 1, 0, 0, 0, 833, 831, 1, 0, 0, 0, 833, 834, 1, 0, 0, 0, 834, 95, 1, 0, 0, 0, 835, 833, 1, 0, 0, 0, 836, 840, 5, 59, 0, 0, 837, 839, 3, 98, 49, 0, 838, 837, 1, 0, 0, 0, 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 843, 1, 0, 0, 0, 842, 840, 1, 0, 0, 0, 843, 844, 5, 60, 0, 0, 844, 97, 1, 0, 0, 0, 845, 850, 3, 100, 50, 0, 846, 850, 3, 168, 84, 0, 847, 850, 3, 170, 85, 0, 848, 850, 3, 172, 86, 0, 849, 845, 1, 0, 0, 0, 849, 846, 1, 0, 0, 0, 849, 847, 1, 0, 0, 0, 849, 848, 1, 0, 0, 0, 850, 99, 1, 0, 0, 0, 851, 857, 3, 102, 51, 0, 852, 857, 3, 138, 69, 0, 853, 857, 3, 80, 40, 0, 854, 857, 3, 196, 98, 0, 855, 857, 5, 63, 0, 0, 856, 851, 1, 0, 0, 0, 856, 852, 1, 0, 0, 0, 856, 853, 1, 0, 0, 0, 856, 854, 1, 0, 0, 0, 856, 855, 1, 0, 0, 0, 857, 101, 1, 0, 0, 0, 858, 860, 3, 104, 52, 0, 859, 858, 1, 0, 0, 0, 860, 863, 1, 0, 0, 0, 861, 859, 1, 0, 0, 0, 861, 862, 1, 0, 0, 0, 862, 864, 1, 0, 0, 0, 863, 861, 1, 0, 0, 0, 864, 865, 3, 114, 57, 0, 865, 866, 3, 106, 53, 0, 866, 867, 5, 63, 0, 0, 867, 103, 1, 0, 0, 0, 868, 877, 3, 228, 114, 0, 869, 877, 5, 35, 0, 0, 870, 877, 5, 34, 0, 0, 871, 877, 5, 33, 0, 0, 872, 877, 5, 38, 0, 0, 873, 877, 5, 18, 0, 0, 874, 877, 5, 46, 0, 0, 875, 877, 5, 49, 0, 0, 876, 868, 1, 0, 0, 0, 876, 869, 1, 0, 0, 0, 876, 870, 1, 0, 0, 0, 876, 871, 1, 0, 0, 0, 876, 872, 1, 0, 0, 0, 876, 873, 1, 0, 0, 0, 876, 874, 1, 0, 0, 0, 876, 875, 1, 0, 0, 0, 877, 105, 1, 0, 0, 0, 878, 883, 3, 108, 54, 0, 879, 880, 5, 64, 0, 0, 880, 882, 3, 108, 54, 0, 881, 879, 1, 0, 0, 0, 882, 885, 1, 0, 0, 0, 883, 881, 1, 0, 0, 0, 883, 884, 1, 0, 0, 0, 884, 107, 1, 0, 0, 0, 885, 883, 1, 0, 0, 0, 886, 889, 3, 110, 55, 0, 887, 888, 5, 66, 0, 0, 888, 890, 3, 112, 56, 0, 889, 887, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 109, 1, 0, 0, 0, 891, 893, 5, 102, 0, 0, 892, 894, 3, 30, 15, 0, 893, 892, 1, 0, 0, 0, 893, 894, 1, 0, 0, 0, 894, 111, 1, 0, 0, 0, 895, 898, 3, 412, 206, 0, 896, 898, 3, 246, 123, 0, 897, 895, 1, 0, 0, 0, 897, 896, 1, 0, 0, 0, 898, 113, 1, 0, 0, 0, 899, 902, 3, 116, 58, 0, 900, 902, 3, 118, 59, 0, 901, 899, 1, 0, 0, 0, 901, 900, 1, 0, 0, 0, 902, 115, 1, 0, 0, 0, 903, 906, 3, 4, 2, 0, 904, 906, 5, 3, 0, 0, 905, 903, 1, 0, 0, 0, 905, 904, 1, 0, 0, 0, 906, 117, 1, 0, 0, 0, 907, 911, 3, 120, 60, 0, 908, 911, 3, 134, 67, 0, 909, 911, 3, 136, 68, 0, 910, 907, 1, 0, 0, 0, 910, 908, 1, 0, 0, 0, 910, 909, 1, 0, 0, 0, 911, 119, 1, 0, 0, 0, 912, 915, 3, 126, 63, 0, 913, 915, 3, 132, 66, 0, 914, 912, 1, 0, 0, 0, 914, 913, 1, 0, 0, 0, 915, 920, 1, 0, 0, 0, 916, 919, 3, 124, 62, 0, 917, 919, 3, 130, 65, 0, 918, 916, 1, 0, 0, 0, 918, 917, 1, 0, 0, 0, 919, 922, 1, 0, 0, 0, 920, 918, 1, 0, 0, 0, 920, 921, 1, 0, 0, 0, 921, 121, 1, 0, 0, 0, 922, 920, 1, 0, 0, 0, 923, 925, 5, 102, 0, 0, 924, 926, 3, 40, 20, 0, 925, 924, 1, 0, 0, 0, 925, 926, 1, 0, 0, 0, 926, 940, 1, 0, 0, 0, 927, 928, 3, 120, 60, 0, 928, 932, 5, 65, 0, 0, 929, 931, 3, 228, 114, 0, 930, 929, 1, 0, 0, 0, 931, 934, 1, 0, 0, 0, 932, 930, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 935, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 935, 937, 5, 102, 0, 0, 936, 938, 3, 40, 20, 0, 937, 936, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 940, 1, 0, 0, 0, 939, 923, 1, 0, 0, 0, 939, 927, 1, 0, 0, 0, 940, 123, 1, 0, 0, 0, 941, 945, 5, 65, 0, 0, 942, 944, 3, 228, 114, 0, 943, 942, 1, 0, 0, 0, 944, 947, 1, 0, 0, 0, 945, 943, 1, 0, 0, 0, 945, 946, 1, 0, 0, 0, 946, 948, 1, 0, 0, 0, 947, 945, 1, 0, 0, 0, 948, 950, 5, 102, 0, 0, 949, 951, 3, 40, 20, 0, 950, 949, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 125, 1, 0, 0, 0, 952, 954, 5, 102, 0, 0, 953, 955, 3, 40, 20, 0, 954, 953, 1, 0, 0, 0, 954, 955, 1, 0, 0, 0, 955, 127, 1, 0, 0, 0, 956, 957, 3, 122, 61, 0, 957, 129, 1, 0, 0, 0, 958, 959, 3, 124, 62, 0, 959, 131, 1, 0, 0, 0, 960, 961, 3, 126, 63, 0, 961, 133, 1, 0, 0, 0, 962, 963, 5, 102, 0, 0, 963, 135, 1, 0, 0, 0, 964, 965, 3, 116, 58, 0, 965, 966, 3, 30, 15, 0, 966, 974, 1, 0, 0, 0, 967, 968, 3, 120, 60, 0, 968, 969, 3, 30, 15, 0, 969, 974, 1, 0, 0, 0, 970, 971, 3, 134, 67, 0, 971, 972, 3, 30, 15, 0, 972, 974, 1, 0, 0, 0, 973, 964, 1, 0, 0, 0, 973, 967, 1, 0, 0, 0, 973, 970, 1, 0, 0, 0, 974, 137, 1, 0, 0, 0, 975, 977, 3, 140, 70, 0, 976, 975, 1, 0, 0, 0, 977, 980, 1, 0, 0, 0, 978, 976, 1, 0, 0, 0, 978, 979, 1, 0, 0, 0, 979, 981, 1, 0, 0, 0, 980, 978, 1, 0, 0, 0, 981, 982, 3, 142, 71, 0, 982, 983, 3, 166, 83, 0, 983, 139, 1, 0, 0, 0, 984, 995, 3, 228, 114, 0, 985, 995, 5, 35, 0, 0, 986, 995, 5, 34, 0, 0, 987, 995, 5, 33, 0, 0, 988, 995, 5, 1, 0, 0, 989, 995, 5, 38, 0, 0, 990, 995, 5, 18, 0, 0, 991, 995, 5, 42, 0, 0, 992, 995, 5, 30, 0, 0, 993, 995, 5, 39, 0, 0, 994, 984, 1, 0, 0, 0, 994, 985, 1, 0, 0, 0, 994, 986, 1, 0, 0, 0, 994, 987, 1, 0, 0, 0, 994, 988, 1, 0, 0, 0, 994, 989, 1, 0, 0, 0, 994, 990, 1, 0, 0, 0, 994, 991, 1, 0, 0, 0, 994, 992, 1, 0, 0, 0, 994, 993, 1, 0, 0, 0, 995, 141, 1, 0, 0, 0, 996, 997, 3, 144, 72, 0, 997, 999, 3, 146, 73, 0, 998, 1000, 3, 160, 80, 0, 999, 998, 1, 0, 0, 0, 999, 1000, 1, 0, 0, 0, 1000, 1014, 1, 0, 0, 0, 1001, 1005, 3, 86, 43, 0, 1002, 1004, 3, 228, 114, 0, 1003, 1002, 1, 0, 0, 0, 1004, 1007, 1, 0, 0, 0, 1005, 1003, 1, 0, 0, 0, 1005, 1006, 1, 0, 0, 0, 1006, 1008, 1, 0, 0, 0, 1007, 1005, 1, 0, 0, 0, 1008, 1009, 3, 144, 72, 0, 1009, 1011, 3, 146, 73, 0, 1010, 1012, 3, 160, 80, 0, 1011, 1010, 1, 0, 0, 0, 1011, 1012, 1, 0, 0, 0, 1012, 1014, 1, 0, 0, 0, 1013, 996, 1, 0, 0, 0, 1013, 1001, 1, 0, 0, 0, 1014, 143, 1, 0, 0, 0, 1015, 1018, 3, 114, 57, 0, 1016, 1018, 5, 48, 0, 0, 1017, 1015, 1, 0, 0, 0, 1017, 1016, 1, 0, 0, 0, 1018, 145, 1, 0, 0, 0, 1019, 1020, 5, 102, 0, 0, 1020, 1022, 5, 57, 0, 0, 1021, 1023, 3, 148, 74, 0, 1022, 1021, 1, 0, 0, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1024, 1, 0, 0, 0, 1024, 1026, 5, 58, 0, 0, 1025, 1027, 3, 30, 15, 0, 1026, 1025, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 147, 1, 0, 0, 0, 1028, 1035, 3, 158, 79, 0, 1029, 1030, 3, 150, 75, 0, 1030, 1031, 5, 64, 0, 0, 1031, 1032, 3, 156, 78, 0, 1032, 1035, 1, 0, 0, 0, 1033, 1035, 3, 156, 78, 0, 1034, 1028, 1, 0, 0, 0, 1034, 1029, 1, 0, 0, 0, 1034, 1033, 1, 0, 0, 0, 1035, 149, 1, 0, 0, 0, 1036, 1041, 3, 152, 76, 0, 1037, 1038, 5, 64, 0, 0, 1038, 1040, 3, 152, 76, 0, 1039, 1037, 1, 0, 0, 0, 1040, 1043, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 1053, 1, 0, 0, 0, 1043, 1041, 1, 0, 0, 0, 1044, 1049, 3, 158, 79, 0, 1045, 1046, 5, 64, 0, 0, 1046, 1048, 3, 152, 76, 0, 1047, 1045, 1, 0, 0, 0, 1048, 1051, 1, 0, 0, 0, 1049, 1047, 1, 0, 0, 0, 1049, 1050, 1, 0, 0, 0, 1050, 1053, 1, 0, 0, 0, 1051, 1049, 1, 0, 0, 0, 1052, 1036, 1, 0, 0, 0, 1052, 1044, 1, 0, 0, 0, 1053, 151, 1, 0, 0, 0, 1054, 1056, 3, 154, 77, 0, 1055, 1054, 1, 0, 0, 0, 1056, 1059, 1, 0, 0, 0, 1057, 1055, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1060, 1, 0, 0, 0, 1059, 1057, 1, 0, 0, 0, 1060, 1061, 3, 114, 57, 0, 1061, 1062, 3, 110, 55, 0, 1062, 153, 1, 0, 0, 0, 1063, 1066, 3, 228, 114, 0, 1064, 1066, 5, 18, 0, 0, 1065, 1063, 1, 0, 0, 0, 1065, 1064, 1, 0, 0, 0, 1066, 155, 1, 0, 0, 0, 1067, 1069, 3, 154, 77, 0, 1068, 1067, 1, 0, 0, 0, 1069, 1072, 1, 0, 0, 0, 1070, 1068, 1, 0, 0, 0, 1070, 1071, 1, 0, 0, 0, 1071, 1073, 1, 0, 0, 0, 1072, 1070, 1, 0, 0, 0, 1073, 1077, 3, 114, 57, 0, 1074, 1076, 3, 228, 114, 0, 1075, 1074, 1, 0, 0, 0, 1076, 1079, 1, 0, 0, 0, 1077, 1075, 1, 0, 0, 0, 1077, 1078, 1, 0, 0, 0, 1078, 1080, 1, 0, 0, 0, 1079, 1077, 1, 0, 0, 0, 1080, 1081, 5, 104, 0, 0, 1081, 1082, 3, 110, 55, 0, 1082, 1085, 1, 0, 0, 0, 1083, 1085, 3, 152, 76, 0, 1084, 1070, 1, 0, 0, 0, 1084, 1083, 1, 0, 0, 0, 1085, 157, 1, 0, 0, 0, 1086, 1088, 3, 228, 114, 0, 1087, 1086, 1, 0, 0, 0, 1088, 1091, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1089, 1090, 1, 0, 0, 0, 1090, 1092, 1, 0, 0, 0, 1091, 1089, 1, 0, 0, 0, 1092, 1095, 3, 114, 57, 0, 1093, 1094, 5, 102, 0, 0, 1094, 1096, 5, 65, 0, 0, 1095, 1093, 1, 0, 0, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1098, 5, 43, 0, 0, 1098, 159, 1, 0, 0, 0, 1099, 1100, 5, 45, 0, 0, 1100, 1101, 3, 162, 81, 0, 1101, 161, 1, 0, 0, 0, 1102, 1107, 3, 164, 82, 0, 1103, 1104, 5, 64, 0, 0, 1104, 1106, 3, 164, 82, 0, 1105, 1103, 1, 0, 0, 0, 1106, 1109, 1, 0, 0, 0, 1107, 1105, 1, 0, 0, 0, 1107, 1108, 1, 0, 0, 0, 1108, 163, 1, 0, 0, 0, 1109, 1107, 1, 0, 0, 0, 1110, 1113, 3, 14, 7, 0, 1111, 1113, 3, 26, 13, 0, 1112, 1110, 1, 0, 0, 0, 1112, 1111, 1, 0, 0, 0, 1113, 165, 1, 0, 0, 0, 1114, 1117, 3, 250, 125, 0, 1115, 1117, 5, 63, 0, 0, 1116, 1114, 1, 0, 0, 0, 1116, 1115, 1, 0, 0, 0, 1117, 167, 1, 0, 0, 0, 1118, 1119, 3, 250, 125, 0, 1119, 169, 1, 0, 0, 0, 1120, 1121, 5, 38, 0, 0, 1121, 1122, 3, 250, 125, 0, 1122, 171, 1, 0, 0, 0, 1123, 1125, 3, 174, 87, 0, 1124, 1123, 1, 0, 0, 0, 1125, 1128, 1, 0, 0, 0, 1126, 1124, 1, 0, 0, 0, 1126, 1127, 1, 0, 0, 0, 1127, 1129, 1, 0, 0, 0, 1128, 1126, 1, 0, 0, 0, 1129, 1131, 3, 176, 88, 0, 1130, 1132, 3, 160, 80, 0, 1131, 1130, 1, 0, 0, 0, 1131, 1132, 1, 0, 0, 0, 1132, 1133, 1, 0, 0, 0, 1133, 1134, 3, 180, 90, 0, 1134, 173, 1, 0, 0, 0, 1135, 1140, 3, 228, 114, 0, 1136, 1140, 5, 35, 0, 0, 1137, 1140, 5, 34, 0, 0, 1138, 1140, 5, 33, 0, 0, 1139, 1135, 1, 0, 0, 0, 1139, 1136, 1, 0, 0, 0, 1139, 1137, 1, 0, 0, 0, 1139, 1138, 1, 0, 0, 0, 1140, 175, 1, 0, 0, 0, 1141, 1143, 3, 86, 43, 0, 1142, 1141, 1, 0, 0, 0, 1142, 1143, 1, 0, 0, 0, 1143, 1144, 1, 0, 0, 0, 1144, 1145, 3, 178, 89, 0, 1145, 1147, 5, 57, 0, 0, 1146, 1148, 3, 148, 74, 0, 1147, 1146, 1, 0, 0, 0, 1147, 1148, 1, 0, 0, 0, 1148, 1149, 1, 0, 0, 0, 1149, 1150, 5, 58, 0, 0, 1150, 177, 1, 0, 0, 0, 1151, 1152, 5, 102, 0, 0, 1152, 179, 1, 0, 0, 0, 1153, 1155, 5, 59, 0, 0, 1154, 1156, 3, 182, 91, 0, 1155, 1154, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1158, 1, 0, 0, 0, 1157, 1159, 3, 252, 126, 0, 1158, 1157, 1, 0, 0, 0, 1158, 1159, 1, 0, 0, 0, 1159, 1160, 1, 0, 0, 0, 1160, 1161, 5, 60, 0, 0, 1161, 181, 1, 0, 0, 0, 1162, 1164, 3, 40, 20, 0, 1163, 1162, 1, 0, 0, 0, 1163, 1164, 1, 0, 0, 0, 1164, 1165, 1, 0, 0, 0, 1165, 1166, 5, 43, 0, 0, 1166, 1168, 5, 57, 0, 0, 1167, 1169, 3, 396, 198, 0, 1168, 1167, 1, 0, 0, 0, 1168, 1169, 1, 0, 0, 0, 1169, 1170, 1, 0, 0, 0, 1170, 1171, 5, 58, 0, 0, 1171, 1209, 5, 63, 0, 0, 1172, 1174, 3, 40, 20, 0, 1173, 1172, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 1, 0, 0, 0, 1175, 1176, 5, 40, 0, 0, 1176, 1178, 5, 57, 0, 0, 1177, 1179, 3, 396, 198, 0, 1178, 1177, 1, 0, 0, 0, 1178, 1179, 1, 0, 0, 0, 1179, 1180, 1, 0, 0, 0, 1180, 1181, 5, 58, 0, 0, 1181, 1209, 5, 63, 0, 0, 1182, 1183, 3, 56, 28, 0, 1183, 1185, 5, 65, 0, 0, 1184, 1186, 3, 40, 20, 0, 1185, 1184, 1, 0, 0, 0, 1185, 1186, 1, 0, 0, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1188, 5, 40, 0, 0, 1188, 1190, 5, 57, 0, 0, 1189, 1191, 3, 396, 198, 0, 1190, 1189, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1193, 5, 58, 0, 0, 1193, 1194, 5, 63, 0, 0, 1194, 1209, 1, 0, 0, 0, 1195, 1196, 3, 350, 175, 0, 1196, 1198, 5, 65, 0, 0, 1197, 1199, 3, 40, 20, 0, 1198, 1197, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 1200, 1, 0, 0, 0, 1200, 1201, 5, 40, 0, 0, 1201, 1203, 5, 57, 0, 0, 1202, 1204, 3, 396, 198, 0, 1203, 1202, 1, 0, 0, 0, 1203, 1204, 1, 0, 0, 0, 1204, 1205, 1, 0, 0, 0, 1205, 1206, 5, 58, 0, 0, 1206, 1207, 5, 63, 0, 0, 1207, 1209, 1, 0, 0, 0, 1208, 1163, 1, 0, 0, 0, 1208, 1173, 1, 0, 0, 0, 1208, 1182, 1, 0, 0, 0, 1208, 1195, 1, 0, 0, 0, 1209, 183, 1, 0, 0, 0, 1210, 1212, 3, 84, 42, 0, 1211, 1210, 1, 0, 0, 0, 1212, 1215, 1, 0, 0, 0, 1213, 1211, 1, 0, 0, 0, 1213, 1214, 1, 0, 0, 0, 1214, 1216, 1, 0, 0, 0, 1215, 1213, 1, 0, 0, 0, 1216, 1217, 5, 16, 0, 0, 1217, 1219, 5, 102, 0, 0, 1218, 1220, 3, 92, 46, 0, 1219, 1218, 1, 0, 0, 0, 1219, 1220, 1, 0, 0, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1222, 3, 186, 93, 0, 1222, 185, 1, 0, 0, 0, 1223, 1225, 5, 59, 0, 0, 1224, 1226, 3, 188, 94, 0, 1225, 1224, 1, 0, 0, 0, 1225, 1226, 1, 0, 0, 0, 1226, 1228, 1, 0, 0, 0, 1227, 1229, 5, 64, 0, 0, 1228, 1227, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1231, 1, 0, 0, 0, 1230, 1232, 3, 194, 97, 0, 1231, 1230, 1, 0, 0, 0, 1231, 1232, 1, 0, 0, 0, 1232, 1233, 1, 0, 0, 0, 1233, 1234, 5, 60, 0, 0, 1234, 187, 1, 0, 0, 0, 1235, 1240, 3, 190, 95, 0, 1236, 1237, 5, 64, 0, 0, 1237, 1239, 3, 190, 95, 0, 1238, 1236, 1, 0, 0, 0, 1239, 1242, 1, 0, 0, 0, 1240, 1238, 1, 0, 0, 0, 1240, 1241, 1, 0, 0, 0, 1241, 189, 1, 0, 0, 0, 1242, 1240, 1, 0, 0, 0, 1243, 1245, 3, 192, 96, 0, 1244, 1243, 1, 0, 0, 0, 1245, 1248, 1, 0, 0, 0, 1246, 1244, 1, 0, 0, 0, 1246, 1247, 1, 0, 0, 0, 1247, 1249, 1, 0, 0, 0, 1248, 1246, 1, 0, 0, 0, 1249, 1255, 5, 102, 0, 0, 1250, 1252, 5, 57, 0, 0, 1251, 1253, 3, 396, 198, 0, 1252, 1251, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1254, 1, 0, 0, 0, 1254, 1256, 5, 58, 0, 0, 1255, 1250, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 1258, 1, 0, 0, 0, 1257, 1259, 3, 96, 48, 0, 1258, 1257, 1, 0, 0, 0, 1258, 1259, 1, 0, 0, 0, 1259, 191, 1, 0, 0, 0, 1260, 1261, 3, 228, 114, 0, 1261, 193, 1, 0, 0, 0, 1262, 1266, 5, 63, 0, 0, 1263, 1265, 3, 98, 49, 0, 1264, 1263, 1, 0, 0, 0, 1265, 1268, 1, 0, 0, 0, 1266, 1264, 1, 0, 0, 0, 1266, 1267, 1, 0, 0, 0, 1267, 195, 1, 0, 0, 0, 1268, 1266, 1, 0, 0, 0, 1269, 1272, 3, 198, 99, 0, 1270, 1272, 3, 216, 108, 0, 1271, 1269, 1, 0, 0, 0, 1271, 1270, 1, 0, 0, 0, 1272, 197, 1, 0, 0, 0, 1273, 1275, 3, 200, 100, 0, 1274, 1273, 1, 0, 0, 0, 1275, 1278, 1, 0, 0, 0, 1276, 1274, 1, 0, 0, 0, 1276, 1277, 1, 0, 0, 0, 1277, 1279, 1, 0, 0, 0, 1278, 1276, 1, 0, 0, 0, 1279, 1280, 5, 28, 0, 0, 1280, 1282, 5, 102, 0, 0, 1281, 1283, 3, 86, 43, 0, 1282, 1281, 1, 0, 0, 0, 1282, 1283, 1, 0, 0, 0, 1283, 1285, 1, 0, 0, 0, 1284, 1286, 3, 202, 101, 0, 1285, 1284, 1, 0, 0, 0, 1285, 1286, 1, 0, 0, 0, 1286, 1287, 1, 0, 0, 0, 1287, 1288, 3, 204, 102, 0, 1288, 199, 1, 0, 0, 0, 1289, 1297, 3, 228, 114, 0, 1290, 1297, 5, 35, 0, 0, 1291, 1297, 5, 34, 0, 0, 1292, 1297, 5, 33, 0, 0, 1293, 1297, 5, 1, 0, 0, 1294, 1297, 5, 38, 0, 0, 1295, 1297, 5, 39, 0, 0, 1296, 1289, 1, 0, 0, 0, 1296, 1290, 1, 0, 0, 0, 1296, 1291, 1, 0, 0, 0, 1296, 1292, 1, 0, 0, 0, 1296, 1293, 1, 0, 0, 0, 1296, 1294, 1, 0, 0, 0, 1296, 1295, 1, 0, 0, 0, 1297, 201, 1, 0, 0, 0, 1298, 1299, 5, 17, 0, 0, 1299, 1300, 3, 94, 47, 0, 1300, 203, 1, 0, 0, 0, 1301, 1305, 5, 59, 0, 0, 1302, 1304, 3, 206, 103, 0, 1303, 1302, 1, 0, 0, 0, 1304, 1307, 1, 0, 0, 0, 1305, 1303, 1, 0, 0, 0, 1305, 1306, 1, 0, 0, 0, 1306, 1308, 1, 0, 0, 0, 1307, 1305, 1, 0, 0, 0, 1308, 1309, 5, 60, 0, 0, 1309, 205, 1, 0, 0, 0, 1310, 1316, 3, 208, 104, 0, 1311, 1316, 3, 212, 106, 0, 1312, 1316, 3, 80, 40, 0, 1313, 1316, 3, 196, 98, 0, 1314, 1316, 5, 63, 0, 0, 1315, 1310, 1, 0, 0, 0, 1315, 1311, 1, 0, 0, 0, 1315, 1312, 1, 0, 0, 0, 1315, 1313, 1, 0, 0, 0, 1315, 1314, 1, 0, 0, 0, 1316, 207, 1, 0, 0, 0, 1317, 1319, 3, 210, 105, 0, 1318, 1317, 1, 0, 0, 0, 1319, 1322, 1, 0, 0, 0, 1320, 1318, 1, 0, 0, 0, 1320, 1321, 1, 0, 0, 0, 1321, 1323, 1, 0, 0, 0, 1322, 1320, 1, 0, 0, 0, 1323, 1324, 3, 114, 57, 0, 1324, 1325, 3, 106, 53, 0, 1325, 1326, 5, 63, 0, 0, 1326, 209, 1, 0, 0, 0, 1327, 1332, 3, 228, 114, 0, 1328, 1332, 5, 35, 0, 0, 1329, 1332, 5, 38, 0, 0, 1330, 1332, 5, 18, 0, 0, 1331, 1327, 1, 0, 0, 0, 1331, 1328, 1, 0, 0, 0, 1331, 1329, 1, 0, 0, 0, 1331, 1330, 1, 0, 0, 0, 1332, 211, 1, 0, 0, 0, 1333, 1335, 3, 214, 107, 0, 1334, 1333, 1, 0, 0, 0, 1335, 1338, 1, 0, 0, 0, 1336, 1334, 1, 0, 0, 0, 1336, 1337, 1, 0, 0, 0, 1337, 1339, 1, 0, 0, 0, 1338, 1336, 1, 0, 0, 0, 1339, 1340, 3, 142, 71, 0, 1340, 1341, 3, 166, 83, 0, 1341, 213, 1, 0, 0, 0, 1342, 1349, 3, 228, 114, 0, 1343, 1349, 5, 35, 0, 0, 1344, 1349, 5, 1, 0, 0, 1345, 1349, 5, 12, 0, 0, 1346, 1349, 5, 38, 0, 0, 1347, 1349, 5, 39, 0, 0, 1348, 1342, 1, 0, 0, 0, 1348, 1343, 1, 0, 0, 0, 1348, 1344, 1, 0, 0, 0, 1348, 1345, 1, 0, 0, 0, 1348, 1346, 1, 0, 0, 0, 1348, 1347, 1, 0, 0, 0, 1349, 215, 1, 0, 0, 0, 1350, 1352, 3, 200, 100, 0, 1351, 1350, 1, 0, 0, 0, 1352, 1355, 1, 0, 0, 0, 1353, 1351, 1, 0, 0, 0, 1353, 1354, 1, 0, 0, 0, 1354, 1356, 1, 0, 0, 0, 1355, 1353, 1, 0, 0, 0, 1356, 1357, 5, 103, 0, 0, 1357, 1358, 5, 28, 0, 0, 1358, 1359, 5, 102, 0, 0, 1359, 1360, 3, 218, 109, 0, 1360, 217, 1, 0, 0, 0, 1361, 1365, 5, 59, 0, 0, 1362, 1364, 3, 220, 110, 0, 1363, 1362, 1, 0, 0, 0, 1364, 1367, 1, 0, 0, 0, 1365, 1363, 1, 0, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1368, 1, 0, 0, 0, 1367, 1365, 1, 0, 0, 0, 1368, 1369, 5, 60, 0, 0, 1369, 219, 1, 0, 0, 0, 1370, 1376, 3, 222, 111, 0, 1371, 1376, 3, 208, 104, 0, 1372, 1376, 3, 80, 40, 0, 1373, 1376, 3, 196, 98, 0, 1374, 1376, 5, 63, 0, 0, 1375, 1370, 1, 0, 0, 0, 1375, 1371, 1, 0, 0, 0, 1375, 1372, 1, 0, 0, 0, 1375, 1373, 1, 0, 0, 0, 1375, 1374, 1, 0, 0, 0, 1376, 221, 1, 0, 0, 0, 1377, 1379, 3, 224, 112, 0, 1378, 1377, 1, 0, 0, 0, 1379, 1382, 1, 0, 0, 0, 1380, 1378, 1, 0, 0, 0, 1380, 1381, 1, 0, 0, 0, 1381, 1383, 1, 0, 0, 0, 1382, 1380, 1, 0, 0, 0, 1383, 1384, 3, 114, 57, 0, 1384, 1385, 5, 102, 0, 0, 1385, 1386, 5, 57, 0, 0, 1386, 1388, 5, 58, 0, 0, 1387, 1389, 3, 30, 15, 0, 1388, 1387, 1, 0, 0, 0, 1388, 1389, 1, 0, 0, 0, 1389, 1391, 1, 0, 0, 0, 1390, 1392, 3, 226, 113, 0, 1391, 1390, 1, 0, 0, 0, 1391, 1392, 1, 0, 0, 0, 1392, 1393, 1, 0, 0, 0, 1393, 1394, 5, 63, 0, 0, 1394, 223, 1, 0, 0, 0, 1395, 1399, 3, 228, 114, 0, 1396, 1399, 5, 35, 0, 0, 1397, 1399, 5, 1, 0, 0, 1398, 1395, 1, 0, 0, 0, 1398, 1396, 1, 0, 0, 0, 1398, 1397, 1, 0, 0, 0, 1399, 225, 1, 0, 0, 0, 1400, 1401, 5, 12, 0, 0, 1401, 1402, 3, 236, 118, 0, 1402, 227, 1, 0, 0, 0, 1403, 1407, 3, 230, 115, 0, 1404, 1407, 3, 242, 121, 0, 1405, 1407, 3, 244, 122, 0, 1406, 1403, 1, 0, 0, 0, 1406, 1404, 1, 0, 0, 0, 1406, 1405, 1, 0, 0, 0, 1407, 229, 1, 0, 0, 0, 1408, 1409, 5, 103, 0, 0, 1409, 1410, 3, 52, 26, 0, 1410, 1412, 5, 57, 0, 0, 1411, 1413, 3, 232, 116, 0, 1412, 1411, 1, 0, 0, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1414, 1, 0, 0, 0, 1414, 1415, 5, 58, 0, 0, 1415, 231, 1, 0, 0, 0, 1416, 1421, 3, 234, 117, 0, 1417, 1418, 5, 64, 0, 0, 1418, 1420, 3, 234, 117, 0, 1419, 1417, 1, 0, 0, 0, 1420, 1423, 1, 0, 0, 0, 1421, 1419, 1, 0, 0, 0, 1421, 1422, 1, 0, 0, 0, 1422, 233, 1, 0, 0, 0, 1423, 1421, 1, 0, 0, 0, 1424, 1425, 5, 102, 0, 0, 1425, 1426, 5, 66, 0, 0, 1426, 1427, 3, 236, 118, 0, 1427, 235, 1, 0, 0, 0, 1428, 1432, 3, 430, 215, 0, 1429, 1432, 3, 238, 119, 0, 1430, 1432, 3, 228, 114, 0, 1431, 1428, 1, 0, 0, 0, 1431, 1429, 1, 0, 0, 0, 1431, 1430, 1, 0, 0, 0, 1432, 237, 1, 0, 0, 0, 1433, 1435, 5, 59, 0, 0, 1434, 1436, 3, 240, 120, 0, 1435, 1434, 1, 0, 0, 0, 1435, 1436, 1, 0, 0, 0, 1436, 1438, 1, 0, 0, 0, 1437, 1439, 5, 64, 0, 0, 1438, 1437, 1, 0, 0, 0, 1438, 1439, 1, 0, 0, 0, 1439, 1440, 1, 0, 0, 0, 1440, 1441, 5, 60, 0, 0, 1441, 239, 1, 0, 0, 0, 1442, 1447, 3, 236, 118, 0, 1443, 1444, 5, 64, 0, 0, 1444, 1446, 3, 236, 118, 0, 1445, 1443, 1, 0, 0, 0, 1446, 1449, 1, 0, 0, 0, 1447, 1445, 1, 0, 0, 0, 1447, 1448, 1, 0, 0, 0, 1448, 241, 1, 0, 0, 0, 1449, 1447, 1, 0, 0, 0, 1450, 1451, 5, 103, 0, 0, 1451, 1452, 3, 52, 26, 0, 1452, 243, 1, 0, 0, 0, 1453, 1454, 5, 103, 0, 0, 1454, 1455, 3, 52, 26, 0, 1455, 1456, 5, 57, 0, 0, 1456, 1457, 3, 236, 118, 0, 1457, 1458, 5, 58, 0, 0, 1458, 245, 1, 0, 0, 0, 1459, 1461, 5, 59, 0, 0, 1460, 1462, 3, 248, 124, 0, 1461, 1460, 1, 0, 0, 0, 1461, 1462, 1, 0, 0, 0, 1462, 1464, 1, 0, 0, 0, 1463, 1465, 5, 64, 0, 0, 1464, 1463, 1, 0, 0, 0, 1464, 1465, 1, 0, 0, 0, 1465, 1466, 1, 0, 0, 0, 1466, 1467, 5, 60, 0, 0, 1467, 247, 1, 0, 0, 0, 1468, 1473, 3, 112, 56, 0, 1469, 1470, 5, 64, 0, 0, 1470, 1472, 3, 112, 56, 0, 1471, 1469, 1, 0, 0, 0, 1472, 1475, 1, 0, 0, 0, 1473, 1471, 1, 0, 0, 0, 1473, 1474, 1, 0, 0, 0, 1474, 249, 1, 0, 0, 0, 1475, 1473, 1, 0, 0, 0, 1476, 1478, 5, 59, 0, 0, 1477, 1479, 3, 252, 126, 0, 1478, 1477, 1, 0, 0, 0, 1478, 1479, 1, 0, 0, 0, 1479, 1480, 1, 0, 0, 0, 1480, 1481, 5, 60, 0, 0, 1481, 251, 1, 0, 0, 0, 1482, 1484, 3, 254, 127, 0, 1483, 1482, 1, 0, 0, 0, 1484, 1485, 1, 0, 0, 0, 1485, 1483, 1, 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 253, 1, 0, 0, 0, 1487, 1491, 3, 256, 128, 0, 1488, 1491, 3, 80, 40, 0, 1489, 1491, 3, 260, 130, 0, 1490, 1487, 1, 0, 0, 0, 1490, 1488, 1, 0, 0, 0, 1490, 1489, 1, 0, 0, 0, 1491, 255, 1, 0, 0, 0, 1492, 1493, 3, 258, 129, 0, 1493, 1494, 5, 63, 0, 0, 1494, 257, 1, 0, 0, 0, 1495, 1497, 3, 154, 77, 0, 1496, 1495, 1, 0, 0, 0, 1497, 1500, 1, 0, 0, 0, 1498, 1496, 1, 0, 0, 0, 1498, 1499, 1, 0, 0, 0, 1499, 1501, 1, 0, 0, 0, 1500, 1498, 1, 0, 0, 0, 1501, 1502, 3, 114, 57, 0, 1502, 1503, 3, 106, 53, 0, 1503, 259, 1, 0, 0, 0, 1504, 1511, 3, 264, 132, 0, 1505, 1511, 3, 268, 134, 0, 1506, 1511, 3, 276, 138, 0, 1507, 1511, 3, 278, 139, 0, 1508, 1511, 3, 296, 148, 0, 1509, 1511, 3, 302, 151, 0, 1510, 1504, 1, 0, 0, 0, 1510, 1505, 1, 0, 0, 0, 1510, 1506, 1, 0, 0, 0, 1510, 1507, 1, 0, 0, 0, 1510, 1508, 1, 0, 0, 0, 1510, 1509, 1, 0, 0, 0, 1511, 261, 1, 0, 0, 0, 1512, 1518, 3, 264, 132, 0, 1513, 1518, 3, 270, 135, 0, 1514, 1518, 3, 280, 140, 0, 1515, 1518, 3, 298, 149, 0, 1516, 1518, 3, 304, 152, 0, 1517, 1512, 1, 0, 0, 0, 1517, 1513, 1, 0, 0, 0, 1517, 1514, 1, 0, 0, 0, 1517, 1515, 1, 0, 0, 0, 1517, 1516, 1, 0, 0, 0, 1518, 263, 1, 0, 0, 0, 1519, 1532, 3, 250, 125, 0, 1520, 1532, 3, 266, 133, 0, 1521, 1532, 3, 272, 136, 0, 1522, 1532, 3, 282, 141, 0, 1523, 1532, 3, 284, 142, 0, 1524, 1532, 3, 300, 150, 0, 1525, 1532, 3, 320, 160, 0, 1526, 1532, 3, 322, 161, 0, 1527, 1532, 3, 324, 162, 0, 1528, 1532, 3, 328, 164, 0, 1529, 1532, 3, 326, 163, 0, 1530, 1532, 3, 330, 165, 0, 1531, 1519, 1, 0, 0, 0, 1531, 1520, 1, 0, 0, 0, 1531, 1521, 1, 0, 0, 0, 1531, 1522, 1, 0, 0, 0, 1531, 1523, 1, 0, 0, 0, 1531, 1524, 1, 0, 0, 0, 1531, 1525, 1, 0, 0, 0, 1531, 1526, 1, 0, 0, 0, 1531, 1527, 1, 0, 0, 0, 1531, 1528, 1, 0, 0, 0, 1531, 1529, 1, 0, 0, 0, 1531, 1530, 1, 0, 0, 0, 1532, 265, 1, 0, 0, 0, 1533, 1534, 5, 63, 0, 0, 1534, 267, 1, 0, 0, 0, 1535, 1536, 5, 102, 0, 0, 1536, 1537, 5, 72, 0, 0, 1537, 1538, 3, 260, 130, 0, 1538, 269, 1, 0, 0, 0, 1539, 1540, 5, 102, 0, 0, 1540, 1541, 5, 72, 0, 0, 1541, 1542, 3, 262, 131, 0, 1542, 271, 1, 0, 0, 0, 1543, 1544, 3, 274, 137, 0, 1544, 1545, 5, 63, 0, 0, 1545, 273, 1, 0, 0, 0, 1546, 1554, 3, 424, 212, 0, 1547, 1554, 3, 454, 227, 0, 1548, 1554, 3, 456, 228, 0, 1549, 1554, 3, 462, 231, 0, 1550, 1554, 3, 466, 233, 0, 1551, 1554, 3, 390, 195, 0, 1552, 1554, 3, 370, 185, 0, 1553, 1546, 1, 0, 0, 0, 1553, 1547, 1, 0, 0, 0, 1553, 1548, 1, 0, 0, 0, 1553, 1549, 1, 0, 0, 0, 1553, 1550, 1, 0, 0, 0, 1553, 1551, 1, 0, 0, 0, 1553, 1552, 1, 0, 0, 0, 1554, 275, 1, 0, 0, 0, 1555, 1556, 5, 22, 0, 0, 1556, 1557, 5, 57, 0, 0, 1557, 1558, 3, 412, 206, 0, 1558, 1559, 5, 58, 0, 0, 1559, 1560, 3, 260, 130, 0, 1560, 277, 1, 0, 0, 0, 1561, 1562, 5, 22, 0, 0, 1562, 1563, 5, 57, 0, 0, 1563, 1564, 3, 412, 206, 0, 1564, 1565, 5, 58, 0, 0, 1565, 1566, 3, 262, 131, 0, 1566, 1567, 5, 15, 0, 0, 1567, 1568, 3, 260, 130, 0, 1568, 279, 1, 0, 0, 0, 1569, 1570, 5, 22, 0, 0, 1570, 1571, 5, 57, 0, 0, 1571, 1572, 3, 412, 206, 0, 1572, 1573, 5, 58, 0, 0, 1573, 1574, 3, 262, 131, 0, 1574, 1575, 5, 15, 0, 0, 1575, 1576, 3, 262, 131, 0, 1576, 281, 1, 0, 0, 0, 1577, 1578, 5, 2, 0, 0, 1578, 1579, 3, 412, 206, 0, 1579, 1580, 5, 63, 0, 0, 1580, 1588, 1, 0, 0, 0, 1581, 1582, 5, 2, 0, 0, 1582, 1583, 3, 412, 206, 0, 1583, 1584, 5, 72, 0, 0, 1584, 1585, 3, 412, 206, 0, 1585, 1586, 5, 63, 0, 0, 1586, 1588, 1, 0, 0, 0, 1587, 1577, 1, 0, 0, 0, 1587, 1581, 1, 0, 0, 0, 1588, 283, 1, 0, 0, 0, 1589, 1590, 5, 41, 0, 0, 1590, 1591, 5, 57, 0, 0, 1591, 1592, 3, 412, 206, 0, 1592, 1593, 5, 58, 0, 0, 1593, 1594, 3, 286, 143, 0, 1594, 285, 1, 0, 0, 0, 1595, 1599, 5, 59, 0, 0, 1596, 1598, 3, 288, 144, 0, 1597, 1596, 1, 0, 0, 0, 1598, 1601, 1, 0, 0, 0, 1599, 1597, 1, 0, 0, 0, 1599, 1600, 1, 0, 0, 0, 1600, 1605, 1, 0, 0, 0, 1601, 1599, 1, 0, 0, 0, 1602, 1604, 3, 292, 146, 0, 1603, 1602, 1, 0, 0, 0, 1604, 1607, 1, 0, 0, 0, 1605, 1603, 1, 0, 0, 0, 1605, 1606, 1, 0, 0, 0, 1606, 1608, 1, 0, 0, 0, 1607, 1605, 1, 0, 0, 0, 1608, 1609, 5, 60, 0, 0, 1609, 287, 1, 0, 0, 0, 1610, 1611, 3, 290, 145, 0, 1611, 1612, 3, 252, 126, 0, 1612, 289, 1, 0, 0, 0, 1613, 1617, 3, 292, 146, 0, 1614, 1616, 3, 292, 146, 0, 1615, 1614, 1, 0, 0, 0, 1616, 1619, 1, 0, 0, 0, 1617, 1615, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 291, 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1620, 1621, 5, 6, 0, 0, 1621, 1622, 3, 410, 205, 0, 1622, 1623, 5, 72, 0, 0, 1623, 1631, 1, 0, 0, 0, 1624, 1625, 5, 6, 0, 0, 1625, 1626, 3, 294, 147, 0, 1626, 1627, 5, 72, 0, 0, 1627, 1631, 1, 0, 0, 0, 1628, 1629, 5, 12, 0, 0, 1629, 1631, 5, 72, 0, 0, 1630, 1620, 1, 0, 0, 0, 1630, 1624, 1, 0, 0, 0, 1630, 1628, 1, 0, 0, 0, 1631, 293, 1, 0, 0, 0, 1632, 1633, 5, 102, 0, 0, 1633, 295, 1, 0, 0, 0, 1634, 1635, 5, 50, 0, 0, 1635, 1636, 5, 57, 0, 0, 1636, 1637, 3, 412, 206, 0, 1637, 1638, 5, 58, 0, 0, 1638, 1639, 3, 260, 130, 0, 1639, 297, 1, 0, 0, 0, 1640, 1641, 5, 50, 0, 0, 1641, 1642, 5, 57, 0, 0, 1642, 1643, 3, 412, 206, 0, 1643, 1644, 5, 58, 0, 0, 1644, 1645, 3, 262, 131, 0, 1645, 299, 1, 0, 0, 0, 1646, 1647, 5, 13, 0, 0, 1647, 1648, 3, 260, 130, 0, 1648, 1649, 5, 50, 0, 0, 1649, 1650, 5, 57, 0, 0, 1650, 1651, 3, 412, 206, 0, 1651, 1652, 5, 58, 0, 0, 1652, 1653, 5, 63, 0, 0, 1653, 301, 1, 0, 0, 0, 1654, 1657, 3, 306, 153, 0, 1655, 1657, 3, 316, 158, 0, 1656, 1654, 1, 0, 0, 0, 1656, 1655, 1, 0, 0, 0, 1657, 303, 1, 0, 0, 0, 1658, 1661, 3, 308, 154, 0, 1659, 1661, 3, 318, 159, 0, 1660, 1658, 1, 0, 0, 0, 1660, 1659, 1, 0, 0, 0, 1661, 305, 1, 0, 0, 0, 1662, 1663, 5, 21, 0, 0, 1663, 1665, 5, 57, 0, 0, 1664, 1666, 3, 310, 155, 0, 1665, 1664, 1, 0, 0, 0, 1665, 1666, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1669, 5, 63, 0, 0, 1668, 1670, 3, 412, 206, 0, 1669, 1668, 1, 0, 0, 0, 1669, 1670, 1, 0, 0, 0, 1670, 1671, 1, 0, 0, 0, 1671, 1673, 5, 63, 0, 0, 1672, 1674, 3, 312, 156, 0, 1673, 1672, 1, 0, 0, 0, 1673, 1674, 1, 0, 0, 0, 1674, 1675, 1, 0, 0, 0, 1675, 1676, 5, 58, 0, 0, 1676, 1677, 3, 260, 130, 0, 1677, 307, 1, 0, 0, 0, 1678, 1679, 5, 21, 0, 0, 1679, 1681, 5, 57, 0, 0, 1680, 1682, 3, 310, 155, 0, 1681, 1680, 1, 0, 0, 0, 1681, 1682, 1, 0, 0, 0, 1682, 1683, 1, 0, 0, 0, 1683, 1685, 5, 63, 0, 0, 1684, 1686, 3, 412, 206, 0, 1685, 1684, 1, 0, 0, 0, 1685, 1686, 1, 0, 0, 0, 1686, 1687, 1, 0, 0, 0, 1687, 1689, 5, 63, 0, 0, 1688, 1690, 3, 312, 156, 0, 1689, 1688, 1, 0, 0, 0, 1689, 1690, 1, 0, 0, 0, 1690, 1691, 1, 0, 0, 0, 1691, 1692, 5, 58, 0, 0, 1692, 1693, 3, 262, 131, 0, 1693, 309, 1, 0, 0, 0, 1694, 1697, 3, 314, 157, 0, 1695, 1697, 3, 258, 129, 0, 1696, 1694, 1, 0, 0, 0, 1696, 1695, 1, 0, 0, 0, 1697, 311, 1, 0, 0, 0, 1698, 1699, 3, 314, 157, 0, 1699, 313, 1, 0, 0, 0, 1700, 1705, 3, 274, 137, 0, 1701, 1702, 5, 64, 0, 0, 1702, 1704, 3, 274, 137, 0, 1703, 1701, 1, 0, 0, 0, 1704, 1707, 1, 0, 0, 0, 1705, 1703, 1, 0, 0, 0, 1705, 1706, 1, 0, 0, 0, 1706, 315, 1, 0, 0, 0, 1707, 1705, 1, 0, 0, 0, 1708, 1709, 5, 21, 0, 0, 1709, 1713, 5, 57, 0, 0, 1710, 1712, 3, 154, 77, 0, 1711, 1710, 1, 0, 0, 0, 1712, 1715, 1, 0, 0, 0, 1713, 1711, 1, 0, 0, 0, 1713, 1714, 1, 0, 0, 0, 1714, 1716, 1, 0, 0, 0, 1715, 1713, 1, 0, 0, 0, 1716, 1717, 3, 114, 57, 0, 1717, 1718, 3, 110, 55, 0, 1718, 1719, 5, 72, 0, 0, 1719, 1720, 3, 412, 206, 0, 1720, 1721, 5, 58, 0, 0, 1721, 1722, 3, 260, 130, 0, 1722, 317, 1, 0, 0, 0, 1723, 1724, 5, 21, 0, 0, 1724, 1728, 5, 57, 0, 0, 1725, 1727, 3, 154, 77, 0, 1726, 1725, 1, 0, 0, 0, 1727, 1730, 1, 0, 0, 0, 1728, 1726, 1, 0, 0, 0, 1728, 1729, 1, 0, 0, 0, 1729, 1731, 1, 0, 0, 0, 1730, 1728, 1, 0, 0, 0, 1731, 1732, 3, 114, 57, 0, 1732, 1733, 3, 110, 55, 0, 1733, 1734, 5, 72, 0, 0, 1734, 1735, 3, 412, 206, 0, 1735, 1736, 5, 58, 0, 0, 1736, 1737, 3, 262, 131, 0, 1737, 319, 1, 0, 0, 0, 1738, 1740, 5, 4, 0, 0, 1739, 1741, 5, 102, 0, 0, 1740, 1739, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1742, 1, 0, 0, 0, 1742, 1743, 5, 63, 0, 0, 1743, 321, 1, 0, 0, 0, 1744, 1746, 5, 11, 0, 0, 1745, 1747, 5, 102, 0, 0, 1746, 1745, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 5, 63, 0, 0, 1749, 323, 1, 0, 0, 0, 1750, 1752, 5, 36, 0, 0, 1751, 1753, 3, 412, 206, 0, 1752, 1751, 1, 0, 0, 0, 1752, 1753, 1, 0, 0, 0, 1753, 1754, 1, 0, 0, 0, 1754, 1755, 5, 63, 0, 0, 1755, 325, 1, 0, 0, 0, 1756, 1757, 5, 44, 0, 0, 1757, 1758, 3, 412, 206, 0, 1758, 1759, 5, 63, 0, 0, 1759, 327, 1, 0, 0, 0, 1760, 1761, 5, 42, 0, 0, 1761, 1762, 5, 57, 0, 0, 1762, 1763, 3, 412, 206, 0, 1763, 1764, 5, 58, 0, 0, 1764, 1765, 3, 250, 125, 0, 1765, 329, 1, 0, 0, 0, 1766, 1767, 5, 47, 0, 0, 1767, 1768, 3, 250, 125, 0, 1768, 1769, 3, 332, 166, 0, 1769, 1779, 1, 0, 0, 0, 1770, 1771, 5, 47, 0, 0, 1771, 1773, 3, 250, 125, 0, 1772, 1774, 3, 332, 166, 0, 1773, 1772, 1, 0, 0, 0, 1773, 1774, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1776, 3, 340, 170, 0, 1776, 1779, 1, 0, 0, 0, 1777, 1779, 3, 342, 171, 0, 1778, 1766, 1, 0, 0, 0, 1778, 1770, 1, 0, 0, 0, 1778, 1777, 1, 0, 0, 0, 1779, 331, 1, 0, 0, 0, 1780, 1784, 3, 334, 167, 0, 1781, 1783, 3, 334, 167, 0, 1782, 1781, 1, 0, 0, 0, 1783, 1786, 1, 0, 0, 0, 1784, 1782, 1, 0, 0, 0, 1784, 1785, 1, 0, 0, 0, 1785, 333, 1, 0, 0, 0, 1786, 1784, 1, 0, 0, 0, 1787, 1788, 5, 7, 0, 0, 1788, 1789, 5, 57, 0, 0, 1789, 1790, 3, 336, 168, 0, 1790, 1791, 5, 58, 0, 0, 1791, 1792, 3, 250, 125, 0, 1792, 335, 1, 0, 0, 0, 1793, 1795, 3, 154, 77, 0, 1794, 1793, 1, 0, 0, 0, 1795, 1798, 1, 0, 0, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1799, 1, 0, 0, 0, 1798, 1796, 1, 0, 0, 0, 1799, 1800, 3, 338, 169, 0, 1800, 1801, 3, 110, 55, 0, 1801, 337, 1, 0, 0, 0, 1802, 1807, 3, 122, 61, 0, 1803, 1804, 5, 86, 0, 0, 1804, 1806, 3, 14, 7, 0, 1805, 1803, 1, 0, 0, 0, 1806, 1809, 1, 0, 0, 0, 1807, 1805, 1, 0, 0, 0, 1807, 1808, 1, 0, 0, 0, 1808, 339, 1, 0, 0, 0, 1809, 1807, 1, 0, 0, 0, 1810, 1811, 5, 19, 0, 0, 1811, 1812, 3, 250, 125, 0, 1812, 341, 1, 0, 0, 0, 1813, 1814, 5, 47, 0, 0, 1814, 1815, 3, 344, 172, 0, 1815, 1817, 3, 250, 125, 0, 1816, 1818, 3, 332, 166, 0, 1817, 1816, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1820, 1, 0, 0, 0, 1819, 1821, 3, 340, 170, 0, 1820, 1819, 1, 0, 0, 0, 1820, 1821, 1, 0, 0, 0, 1821, 343, 1, 0, 0, 0, 1822, 1823, 5, 57, 0, 0, 1823, 1825, 3, 346, 173, 0, 1824, 1826, 5, 63, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1828, 5, 58, 0, 0, 1828, 345, 1, 0, 0, 0, 1829, 1834, 3, 348, 174, 0, 1830, 1831, 5, 63, 0, 0, 1831, 1833, 3, 348, 174, 0, 1832, 1830, 1, 0, 0, 0, 1833, 1836, 1, 0, 0, 0, 1834, 1832, 1, 0, 0, 0, 1834, 1835, 1, 0, 0, 0, 1835, 347, 1, 0, 0, 0, 1836, 1834, 1, 0, 0, 0, 1837, 1839, 3, 154, 77, 0, 1838, 1837, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1838, 1, 0, 0, 0, 1840, 1841, 1, 0, 0, 0, 1841, 1843, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1843, 1844, 3, 114, 57, 0, 1844, 1845, 3, 110, 55, 0, 1845, 1846, 5, 66, 0, 0, 1846, 1847, 3, 412, 206, 0, 1847, 349, 1, 0, 0, 0, 1848, 1851, 3, 364, 182, 0, 1849, 1851, 3, 404, 202, 0, 1850, 1848, 1, 0, 0, 0, 1850, 1849, 1, 0, 0, 0, 1851, 1855, 1, 0, 0, 0, 1852, 1854, 3, 358, 179, 0, 1853, 1852, 1, 0, 0, 0, 1854, 1857, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1855, 1856, 1, 0, 0, 0, 1856, 351, 1, 0, 0, 0, 1857, 1855, 1, 0, 0, 0, 1858, 1888, 3, 0, 0, 0, 1859, 1864, 3, 52, 26, 0, 1860, 1861, 5, 61, 0, 0, 1861, 1863, 5, 62, 0, 0, 1862, 1860, 1, 0, 0, 0, 1863, 1866, 1, 0, 0, 0, 1864, 1862, 1, 0, 0, 0, 1864, 1865, 1, 0, 0, 0, 1865, 1867, 1, 0, 0, 0, 1866, 1864, 1, 0, 0, 0, 1867, 1868, 5, 65, 0, 0, 1868, 1869, 5, 9, 0, 0, 1869, 1888, 1, 0, 0, 0, 1870, 1871, 5, 48, 0, 0, 1871, 1872, 5, 65, 0, 0, 1872, 1888, 5, 9, 0, 0, 1873, 1888, 5, 43, 0, 0, 1874, 1875, 3, 52, 26, 0, 1875, 1876, 5, 65, 0, 0, 1876, 1877, 5, 43, 0, 0, 1877, 1888, 1, 0, 0, 0, 1878, 1879, 5, 57, 0, 0, 1879, 1880, 3, 412, 206, 0, 1880, 1881, 5, 58, 0, 0, 1881, 1888, 1, 0, 0, 0, 1882, 1888, 3, 370, 185, 0, 1883, 1888, 3, 378, 189, 0, 1884, 1888, 3, 384, 192, 0, 1885, 1888, 3, 390, 195, 0, 1886, 1888, 3, 398, 199, 0, 1887, 1858, 1, 0, 0, 0, 1887, 1859, 1, 0, 0, 0, 1887, 1870, 1, 0, 0, 0, 1887, 1873, 1, 0, 0, 0, 1887, 1874, 1, 0, 0, 0, 1887, 1878, 1, 0, 0, 0, 1887, 1882, 1, 0, 0, 0, 1887, 1883, 1, 0, 0, 0, 1887, 1884, 1, 0, 0, 0, 1887, 1885, 1, 0, 0, 0, 1887, 1886, 1, 0, 0, 0, 1888, 353, 1, 0, 0, 0, 1889, 1890, 1, 0, 0, 0, 1890, 355, 1, 0, 0, 0, 1891, 1920, 3, 0, 0, 0, 1892, 1897, 3, 52, 26, 0, 1893, 1894, 5, 61, 0, 0, 1894, 1896, 5, 62, 0, 0, 1895, 1893, 1, 0, 0, 0, 1896, 1899, 1, 0, 0, 0, 1897, 1895, 1, 0, 0, 0, 1897, 1898, 1, 0, 0, 0, 1898, 1900, 1, 0, 0, 0, 1899, 1897, 1, 0, 0, 0, 1900, 1901, 5, 65, 0, 0, 1901, 1902, 5, 9, 0, 0, 1902, 1920, 1, 0, 0, 0, 1903, 1904, 5, 48, 0, 0, 1904, 1905, 5, 65, 0, 0, 1905, 1920, 5, 9, 0, 0, 1906, 1920, 5, 43, 0, 0, 1907, 1908, 3, 52, 26, 0, 1908, 1909, 5, 65, 0, 0, 1909, 1910, 5, 43, 0, 0, 1910, 1920, 1, 0, 0, 0, 1911, 1912, 5, 57, 0, 0, 1912, 1913, 3, 412, 206, 0, 1913, 1914, 5, 58, 0, 0, 1914, 1920, 1, 0, 0, 0, 1915, 1920, 3, 370, 185, 0, 1916, 1920, 3, 378, 189, 0, 1917, 1920, 3, 390, 195, 0, 1918, 1920, 3, 398, 199, 0, 1919, 1891, 1, 0, 0, 0, 1919, 1892, 1, 0, 0, 0, 1919, 1903, 1, 0, 0, 0, 1919, 1906, 1, 0, 0, 0, 1919, 1907, 1, 0, 0, 0, 1919, 1911, 1, 0, 0, 0, 1919, 1915, 1, 0, 0, 0, 1919, 1916, 1, 0, 0, 0, 1919, 1917, 1, 0, 0, 0, 1919, 1918, 1, 0, 0, 0, 1920, 357, 1, 0, 0, 0, 1921, 1927, 3, 372, 186, 0, 1922, 1927, 3, 380, 190, 0, 1923, 1927, 3, 386, 193, 0, 1924, 1927, 3, 392, 196, 0, 1925, 1927, 3, 400, 200, 0, 1926, 1921, 1, 0, 0, 0, 1926, 1922, 1, 0, 0, 0, 1926, 1923, 1, 0, 0, 0, 1926, 1924, 1, 0, 0, 0, 1926, 1925, 1, 0, 0, 0, 1927, 359, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 361, 1, 0, 0, 0, 1930, 1935, 3, 372, 186, 0, 1931, 1935, 3, 380, 190, 0, 1932, 1935, 3, 392, 196, 0, 1933, 1935, 3, 400, 200, 0, 1934, 1930, 1, 0, 0, 0, 1934, 1931, 1, 0, 0, 0, 1934, 1932, 1, 0, 0, 0, 1934, 1933, 1, 0, 0, 0, 1935, 363, 1, 0, 0, 0, 1936, 1977, 3, 0, 0, 0, 1937, 1942, 3, 52, 26, 0, 1938, 1939, 5, 61, 0, 0, 1939, 1941, 5, 62, 0, 0, 1940, 1938, 1, 0, 0, 0, 1941, 1944, 1, 0, 0, 0, 1942, 1940, 1, 0, 0, 0, 1942, 1943, 1, 0, 0, 0, 1943, 1945, 1, 0, 0, 0, 1944, 1942, 1, 0, 0, 0, 1945, 1946, 5, 65, 0, 0, 1946, 1947, 5, 9, 0, 0, 1947, 1977, 1, 0, 0, 0, 1948, 1953, 3, 116, 58, 0, 1949, 1950, 5, 61, 0, 0, 1950, 1952, 5, 62, 0, 0, 1951, 1949, 1, 0, 0, 0, 1952, 1955, 1, 0, 0, 0, 1953, 1951, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1956, 1, 0, 0, 0, 1955, 1953, 1, 0, 0, 0, 1956, 1957, 5, 65, 0, 0, 1957, 1958, 5, 9, 0, 0, 1958, 1977, 1, 0, 0, 0, 1959, 1960, 5, 48, 0, 0, 1960, 1961, 5, 65, 0, 0, 1961, 1977, 5, 9, 0, 0, 1962, 1977, 5, 43, 0, 0, 1963, 1964, 3, 52, 26, 0, 1964, 1965, 5, 65, 0, 0, 1965, 1966, 5, 43, 0, 0, 1966, 1977, 1, 0, 0, 0, 1967, 1968, 5, 57, 0, 0, 1968, 1969, 3, 412, 206, 0, 1969, 1970, 5, 58, 0, 0, 1970, 1977, 1, 0, 0, 0, 1971, 1977, 3, 374, 187, 0, 1972, 1977, 3, 382, 191, 0, 1973, 1977, 3, 388, 194, 0, 1974, 1977, 3, 394, 197, 0, 1975, 1977, 3, 402, 201, 0, 1976, 1936, 1, 0, 0, 0, 1976, 1937, 1, 0, 0, 0, 1976, 1948, 1, 0, 0, 0, 1976, 1959, 1, 0, 0, 0, 1976, 1962, 1, 0, 0, 0, 1976, 1963, 1, 0, 0, 0, 1976, 1967, 1, 0, 0, 0, 1976, 1971, 1, 0, 0, 0, 1976, 1972, 1, 0, 0, 0, 1976, 1973, 1, 0, 0, 0, 1976, 1974, 1, 0, 0, 0, 1976, 1975, 1, 0, 0, 0, 1977, 365, 1, 0, 0, 0, 1978, 1979, 1, 0, 0, 0, 1979, 367, 1, 0, 0, 0, 1980, 2020, 3, 0, 0, 0, 1981, 1986, 3, 52, 26, 0, 1982, 1983, 5, 61, 0, 0, 1983, 1985, 5, 62, 0, 0, 1984, 1982, 1, 0, 0, 0, 1985, 1988, 1, 0, 0, 0, 1986, 1984, 1, 0, 0, 0, 1986, 1987, 1, 0, 0, 0, 1987, 1989, 1, 0, 0, 0, 1988, 1986, 1, 0, 0, 0, 1989, 1990, 5, 65, 0, 0, 1990, 1991, 5, 9, 0, 0, 1991, 2020, 1, 0, 0, 0, 1992, 1997, 3, 116, 58, 0, 1993, 1994, 5, 61, 0, 0, 1994, 1996, 5, 62, 0, 0, 1995, 1993, 1, 0, 0, 0, 1996, 1999, 1, 0, 0, 0, 1997, 1995, 1, 0, 0, 0, 1997, 1998, 1, 0, 0, 0, 1998, 2000, 1, 0, 0, 0, 1999, 1997, 1, 0, 0, 0, 2000, 2001, 5, 65, 0, 0, 2001, 2002, 5, 9, 0, 0, 2002, 2020, 1, 0, 0, 0, 2003, 2004, 5, 48, 0, 0, 2004, 2005, 5, 65, 0, 0, 2005, 2020, 5, 9, 0, 0, 2006, 2020, 5, 43, 0, 0, 2007, 2008, 3, 52, 26, 0, 2008, 2009, 5, 65, 0, 0, 2009, 2010, 5, 43, 0, 0, 2010, 2020, 1, 0, 0, 0, 2011, 2012, 5, 57, 0, 0, 2012, 2013, 3, 412, 206, 0, 2013, 2014, 5, 58, 0, 0, 2014, 2020, 1, 0, 0, 0, 2015, 2020, 3, 374, 187, 0, 2016, 2020, 3, 382, 191, 0, 2017, 2020, 3, 394, 197, 0, 2018, 2020, 3, 402, 201, 0, 2019, 1980, 1, 0, 0, 0, 2019, 1981, 1, 0, 0, 0, 2019, 1992, 1, 0, 0, 0, 2019, 2003, 1, 0, 0, 0, 2019, 2006, 1, 0, 0, 0, 2019, 2007, 1, 0, 0, 0, 2019, 2011, 1, 0, 0, 0, 2019, 2015, 1, 0, 0, 0, 2019, 2016, 1, 0, 0, 0, 2019, 2017, 1, 0, 0, 0, 2019, 2018, 1, 0, 0, 0, 2020, 369, 1, 0, 0, 0, 2021, 2023, 5, 31, 0, 0, 2022, 2024, 3, 40, 20, 0, 2023, 2022, 1, 0, 0, 0, 2023, 2024, 1, 0, 0, 0, 2024, 2028, 1, 0, 0, 0, 2025, 2027, 3, 228, 114, 0, 2026, 2025, 1, 0, 0, 0, 2027, 2030, 1, 0, 0, 0, 2028, 2026, 1, 0, 0, 0, 2028, 2029, 1, 0, 0, 0, 2029, 2031, 1, 0, 0, 0, 2030, 2028, 1, 0, 0, 0, 2031, 2042, 5, 102, 0, 0, 2032, 2036, 5, 65, 0, 0, 2033, 2035, 3, 228, 114, 0, 2034, 2033, 1, 0, 0, 0, 2035, 2038, 1, 0, 0, 0, 2036, 2034, 1, 0, 0, 0, 2036, 2037, 1, 0, 0, 0, 2037, 2039, 1, 0, 0, 0, 2038, 2036, 1, 0, 0, 0, 2039, 2041, 5, 102, 0, 0, 2040, 2032, 1, 0, 0, 0, 2041, 2044, 1, 0, 0, 0, 2042, 2040, 1, 0, 0, 0, 2042, 2043, 1, 0, 0, 0, 2043, 2046, 1, 0, 0, 0, 2044, 2042, 1, 0, 0, 0, 2045, 2047, 3, 376, 188, 0, 2046, 2045, 1, 0, 0, 0, 2046, 2047, 1, 0, 0, 0, 2047, 2048, 1, 0, 0, 0, 2048, 2050, 5, 57, 0, 0, 2049, 2051, 3, 396, 198, 0, 2050, 2049, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2052, 1, 0, 0, 0, 2052, 2054, 5, 58, 0, 0, 2053, 2055, 3, 96, 48, 0, 2054, 2053, 1, 0, 0, 0, 2054, 2055, 1, 0, 0, 0, 2055, 2105, 1, 0, 0, 0, 2056, 2057, 3, 56, 28, 0, 2057, 2058, 5, 65, 0, 0, 2058, 2060, 5, 31, 0, 0, 2059, 2061, 3, 40, 20, 0, 2060, 2059, 1, 0, 0, 0, 2060, 2061, 1, 0, 0, 0, 2061, 2065, 1, 0, 0, 0, 2062, 2064, 3, 228, 114, 0, 2063, 2062, 1, 0, 0, 0, 2064, 2067, 1, 0, 0, 0, 2065, 2063, 1, 0, 0, 0, 2065, 2066, 1, 0, 0, 0, 2066, 2068, 1, 0, 0, 0, 2067, 2065, 1, 0, 0, 0, 2068, 2070, 5, 102, 0, 0, 2069, 2071, 3, 376, 188, 0, 2070, 2069, 1, 0, 0, 0, 2070, 2071, 1, 0, 0, 0, 2071, 2072, 1, 0, 0, 0, 2072, 2074, 5, 57, 0, 0, 2073, 2075, 3, 396, 198, 0, 2074, 2073, 1, 0, 0, 0, 2074, 2075, 1, 0, 0, 0, 2075, 2076, 1, 0, 0, 0, 2076, 2078, 5, 58, 0, 0, 2077, 2079, 3, 96, 48, 0, 2078, 2077, 1, 0, 0, 0, 2078, 2079, 1, 0, 0, 0, 2079, 2105, 1, 0, 0, 0, 2080, 2081, 3, 350, 175, 0, 2081, 2082, 5, 65, 0, 0, 2082, 2084, 5, 31, 0, 0, 2083, 2085, 3, 40, 20, 0, 2084, 2083, 1, 0, 0, 0, 2084, 2085, 1, 0, 0, 0, 2085, 2089, 1, 0, 0, 0, 2086, 2088, 3, 228, 114, 0, 2087, 2086, 1, 0, 0, 0, 2088, 2091, 1, 0, 0, 0, 2089, 2087, 1, 0, 0, 0, 2089, 2090, 1, 0, 0, 0, 2090, 2092, 1, 0, 0, 0, 2091, 2089, 1, 0, 0, 0, 2092, 2094, 5, 102, 0, 0, 2093, 2095, 3, 376, 188, 0, 2094, 2093, 1, 0, 0, 0, 2094, 2095, 1, 0, 0, 0, 2095, 2096, 1, 0, 0, 0, 2096, 2098, 5, 57, 0, 0, 2097, 2099, 3, 396, 198, 0, 2098, 2097, 1, 0, 0, 0, 2098, 2099, 1, 0, 0, 0, 2099, 2100, 1, 0, 0, 0, 2100, 2102, 5, 58, 0, 0, 2101, 2103, 3, 96, 48, 0, 2102, 2101, 1, 0, 0, 0, 2102, 2103, 1, 0, 0, 0, 2103, 2105, 1, 0, 0, 0, 2104, 2021, 1, 0, 0, 0, 2104, 2056, 1, 0, 0, 0, 2104, 2080, 1, 0, 0, 0, 2105, 371, 1, 0, 0, 0, 2106, 2107, 5, 65, 0, 0, 2107, 2109, 5, 31, 0, 0, 2108, 2110, 3, 40, 20, 0, 2109, 2108, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2114, 1, 0, 0, 0, 2111, 2113, 3, 228, 114, 0, 2112, 2111, 1, 0, 0, 0, 2113, 2116, 1, 0, 0, 0, 2114, 2112, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 2117, 1, 0, 0, 0, 2116, 2114, 1, 0, 0, 0, 2117, 2119, 5, 102, 0, 0, 2118, 2120, 3, 376, 188, 0, 2119, 2118, 1, 0, 0, 0, 2119, 2120, 1, 0, 0, 0, 2120, 2121, 1, 0, 0, 0, 2121, 2123, 5, 57, 0, 0, 2122, 2124, 3, 396, 198, 0, 2123, 2122, 1, 0, 0, 0, 2123, 2124, 1, 0, 0, 0, 2124, 2125, 1, 0, 0, 0, 2125, 2127, 5, 58, 0, 0, 2126, 2128, 3, 96, 48, 0, 2127, 2126, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 373, 1, 0, 0, 0, 2129, 2131, 5, 31, 0, 0, 2130, 2132, 3, 40, 20, 0, 2131, 2130, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2136, 1, 0, 0, 0, 2133, 2135, 3, 228, 114, 0, 2134, 2133, 1, 0, 0, 0, 2135, 2138, 1, 0, 0, 0, 2136, 2134, 1, 0, 0, 0, 2136, 2137, 1, 0, 0, 0, 2137, 2139, 1, 0, 0, 0, 2138, 2136, 1, 0, 0, 0, 2139, 2150, 5, 102, 0, 0, 2140, 2144, 5, 65, 0, 0, 2141, 2143, 3, 228, 114, 0, 2142, 2141, 1, 0, 0, 0, 2143, 2146, 1, 0, 0, 0, 2144, 2142, 1, 0, 0, 0, 2144, 2145, 1, 0, 0, 0, 2145, 2147, 1, 0, 0, 0, 2146, 2144, 1, 0, 0, 0, 2147, 2149, 5, 102, 0, 0, 2148, 2140, 1, 0, 0, 0, 2149, 2152, 1, 0, 0, 0, 2150, 2148, 1, 0, 0, 0, 2150, 2151, 1, 0, 0, 0, 2151, 2154, 1, 0, 0, 0, 2152, 2150, 1, 0, 0, 0, 2153, 2155, 3, 376, 188, 0, 2154, 2153, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2156, 1, 0, 0, 0, 2156, 2158, 5, 57, 0, 0, 2157, 2159, 3, 396, 198, 0, 2158, 2157, 1, 0, 0, 0, 2158, 2159, 1, 0, 0, 0, 2159, 2160, 1, 0, 0, 0, 2160, 2162, 5, 58, 0, 0, 2161, 2163, 3, 96, 48, 0, 2162, 2161, 1, 0, 0, 0, 2162, 2163, 1, 0, 0, 0, 2163, 2189, 1, 0, 0, 0, 2164, 2165, 3, 56, 28, 0, 2165, 2166, 5, 65, 0, 0, 2166, 2168, 5, 31, 0, 0, 2167, 2169, 3, 40, 20, 0, 2168, 2167, 1, 0, 0, 0, 2168, 2169, 1, 0, 0, 0, 2169, 2173, 1, 0, 0, 0, 2170, 2172, 3, 228, 114, 0, 2171, 2170, 1, 0, 0, 0, 2172, 2175, 1, 0, 0, 0, 2173, 2171, 1, 0, 0, 0, 2173, 2174, 1, 0, 0, 0, 2174, 2176, 1, 0, 0, 0, 2175, 2173, 1, 0, 0, 0, 2176, 2178, 5, 102, 0, 0, 2177, 2179, 3, 376, 188, 0, 2178, 2177, 1, 0, 0, 0, 2178, 2179, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2182, 5, 57, 0, 0, 2181, 2183, 3, 396, 198, 0, 2182, 2181, 1, 0, 0, 0, 2182, 2183, 1, 0, 0, 0, 2183, 2184, 1, 0, 0, 0, 2184, 2186, 5, 58, 0, 0, 2185, 2187, 3, 96, 48, 0, 2186, 2185, 1, 0, 0, 0, 2186, 2187, 1, 0, 0, 0, 2187, 2189, 1, 0, 0, 0, 2188, 2129, 1, 0, 0, 0, 2188, 2164, 1, 0, 0, 0, 2189, 375, 1, 0, 0, 0, 2190, 2194, 3, 40, 20, 0, 2191, 2192, 5, 68, 0, 0, 2192, 2194, 5, 67, 0, 0, 2193, 2190, 1, 0, 0, 0, 2193, 2191, 1, 0, 0, 0, 2194, 377, 1, 0, 0, 0, 2195, 2196, 3, 350, 175, 0, 2196, 2197, 5, 65, 0, 0, 2197, 2198, 5, 102, 0, 0, 2198, 2209, 1, 0, 0, 0, 2199, 2200, 5, 40, 0, 0, 2200, 2201, 5, 65, 0, 0, 2201, 2209, 5, 102, 0, 0, 2202, 2203, 3, 52, 26, 0, 2203, 2204, 5, 65, 0, 0, 2204, 2205, 5, 40, 0, 0, 2205, 2206, 5, 65, 0, 0, 2206, 2207, 5, 102, 0, 0, 2207, 2209, 1, 0, 0, 0, 2208, 2195, 1, 0, 0, 0, 2208, 2199, 1, 0, 0, 0, 2208, 2202, 1, 0, 0, 0, 2209, 379, 1, 0, 0, 0, 2210, 2211, 5, 65, 0, 0, 2211, 2212, 5, 102, 0, 0, 2212, 381, 1, 0, 0, 0, 2213, 2214, 5, 40, 0, 0, 2214, 2215, 5, 65, 0, 0, 2215, 2223, 5, 102, 0, 0, 2216, 2217, 3, 52, 26, 0, 2217, 2218, 5, 65, 0, 0, 2218, 2219, 5, 40, 0, 0, 2219, 2220, 5, 65, 0, 0, 2220, 2221, 5, 102, 0, 0, 2221, 2223, 1, 0, 0, 0, 2222, 2213, 1, 0, 0, 0, 2222, 2216, 1, 0, 0, 0, 2223, 383, 1, 0, 0, 0, 2224, 2225, 3, 56, 28, 0, 2225, 2226, 5, 61, 0, 0, 2226, 2227, 3, 412, 206, 0, 2227, 2228, 5, 62, 0, 0, 2228, 2235, 1, 0, 0, 0, 2229, 2230, 3, 356, 178, 0, 2230, 2231, 5, 61, 0, 0, 2231, 2232, 3, 412, 206, 0, 2232, 2233, 5, 62, 0, 0, 2233, 2235, 1, 0, 0, 0, 2234, 2224, 1, 0, 0, 0, 2234, 2229, 1, 0, 0, 0, 2235, 2243, 1, 0, 0, 0, 2236, 2237, 3, 354, 177, 0, 2237, 2238, 5, 61, 0, 0, 2238, 2239, 3, 412, 206, 0, 2239, 2240, 5, 62, 0, 0, 2240, 2242, 1, 0, 0, 0, 2241, 2236, 1, 0, 0, 0, 2242, 2245, 1, 0, 0, 0, 2243, 2241, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 385, 1, 0, 0, 0, 2245, 2243, 1, 0, 0, 0, 2246, 2247, 3, 362, 181, 0, 2247, 2248, 5, 61, 0, 0, 2248, 2249, 3, 412, 206, 0, 2249, 2257, 5, 62, 0, 0, 2250, 2251, 3, 360, 180, 0, 2251, 2252, 5, 61, 0, 0, 2252, 2253, 3, 412, 206, 0, 2253, 2254, 5, 62, 0, 0, 2254, 2256, 1, 0, 0, 0, 2255, 2250, 1, 0, 0, 0, 2256, 2259, 1, 0, 0, 0, 2257, 2255, 1, 0, 0, 0, 2257, 2258, 1, 0, 0, 0, 2258, 387, 1, 0, 0, 0, 2259, 2257, 1, 0, 0, 0, 2260, 2261, 3, 56, 28, 0, 2261, 2262, 5, 61, 0, 0, 2262, 2263, 3, 412, 206, 0, 2263, 2264, 5, 62, 0, 0, 2264, 2271, 1, 0, 0, 0, 2265, 2266, 3, 368, 184, 0, 2266, 2267, 5, 61, 0, 0, 2267, 2268, 3, 412, 206, 0, 2268, 2269, 5, 62, 0, 0, 2269, 2271, 1, 0, 0, 0, 2270, 2260, 1, 0, 0, 0, 2270, 2265, 1, 0, 0, 0, 2271, 2279, 1, 0, 0, 0, 2272, 2273, 3, 366, 183, 0, 2273, 2274, 5, 61, 0, 0, 2274, 2275, 3, 412, 206, 0, 2275, 2276, 5, 62, 0, 0, 2276, 2278, 1, 0, 0, 0, 2277, 2272, 1, 0, 0, 0, 2278, 2281, 1, 0, 0, 0, 2279, 2277, 1, 0, 0, 0, 2279, 2280, 1, 0, 0, 0, 2280, 389, 1, 0, 0, 0, 2281, 2279, 1, 0, 0, 0, 2282, 2283, 3, 58, 29, 0, 2283, 2285, 5, 57, 0, 0, 2284, 2286, 3, 396, 198, 0, 2285, 2284, 1, 0, 0, 0, 2285, 2286, 1, 0, 0, 0, 2286, 2287, 1, 0, 0, 0, 2287, 2288, 5, 58, 0, 0, 2288, 2351, 1, 0, 0, 0, 2289, 2290, 3, 52, 26, 0, 2290, 2292, 5, 65, 0, 0, 2291, 2293, 3, 40, 20, 0, 2292, 2291, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2294, 1, 0, 0, 0, 2294, 2295, 5, 102, 0, 0, 2295, 2297, 5, 57, 0, 0, 2296, 2298, 3, 396, 198, 0, 2297, 2296, 1, 0, 0, 0, 2297, 2298, 1, 0, 0, 0, 2298, 2299, 1, 0, 0, 0, 2299, 2300, 5, 58, 0, 0, 2300, 2351, 1, 0, 0, 0, 2301, 2302, 3, 56, 28, 0, 2302, 2304, 5, 65, 0, 0, 2303, 2305, 3, 40, 20, 0, 2304, 2303, 1, 0, 0, 0, 2304, 2305, 1, 0, 0, 0, 2305, 2306, 1, 0, 0, 0, 2306, 2307, 5, 102, 0, 0, 2307, 2309, 5, 57, 0, 0, 2308, 2310, 3, 396, 198, 0, 2309, 2308, 1, 0, 0, 0, 2309, 2310, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2312, 5, 58, 0, 0, 2312, 2351, 1, 0, 0, 0, 2313, 2314, 3, 350, 175, 0, 2314, 2316, 5, 65, 0, 0, 2315, 2317, 3, 40, 20, 0, 2316, 2315, 1, 0, 0, 0, 2316, 2317, 1, 0, 0, 0, 2317, 2318, 1, 0, 0, 0, 2318, 2319, 5, 102, 0, 0, 2319, 2321, 5, 57, 0, 0, 2320, 2322, 3, 396, 198, 0, 2321, 2320, 1, 0, 0, 0, 2321, 2322, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2324, 5, 58, 0, 0, 2324, 2351, 1, 0, 0, 0, 2325, 2326, 5, 40, 0, 0, 2326, 2328, 5, 65, 0, 0, 2327, 2329, 3, 40, 20, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2330, 1, 0, 0, 0, 2330, 2331, 5, 102, 0, 0, 2331, 2333, 5, 57, 0, 0, 2332, 2334, 3, 396, 198, 0, 2333, 2332, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2335, 1, 0, 0, 0, 2335, 2351, 5, 58, 0, 0, 2336, 2337, 3, 52, 26, 0, 2337, 2338, 5, 65, 0, 0, 2338, 2339, 5, 40, 0, 0, 2339, 2341, 5, 65, 0, 0, 2340, 2342, 3, 40, 20, 0, 2341, 2340, 1, 0, 0, 0, 2341, 2342, 1, 0, 0, 0, 2342, 2343, 1, 0, 0, 0, 2343, 2344, 5, 102, 0, 0, 2344, 2346, 5, 57, 0, 0, 2345, 2347, 3, 396, 198, 0, 2346, 2345, 1, 0, 0, 0, 2346, 2347, 1, 0, 0, 0, 2347, 2348, 1, 0, 0, 0, 2348, 2349, 5, 58, 0, 0, 2349, 2351, 1, 0, 0, 0, 2350, 2282, 1, 0, 0, 0, 2350, 2289, 1, 0, 0, 0, 2350, 2301, 1, 0, 0, 0, 2350, 2313, 1, 0, 0, 0, 2350, 2325, 1, 0, 0, 0, 2350, 2336, 1, 0, 0, 0, 2351, 391, 1, 0, 0, 0, 2352, 2354, 5, 65, 0, 0, 2353, 2355, 3, 40, 20, 0, 2354, 2353, 1, 0, 0, 0, 2354, 2355, 1, 0, 0, 0, 2355, 2356, 1, 0, 0, 0, 2356, 2357, 5, 102, 0, 0, 2357, 2359, 5, 57, 0, 0, 2358, 2360, 3, 396, 198, 0, 2359, 2358, 1, 0, 0, 0, 2359, 2360, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2362, 5, 58, 0, 0, 2362, 393, 1, 0, 0, 0, 2363, 2364, 3, 58, 29, 0, 2364, 2366, 5, 57, 0, 0, 2365, 2367, 3, 396, 198, 0, 2366, 2365, 1, 0, 0, 0, 2366, 2367, 1, 0, 0, 0, 2367, 2368, 1, 0, 0, 0, 2368, 2369, 5, 58, 0, 0, 2369, 2420, 1, 0, 0, 0, 2370, 2371, 3, 52, 26, 0, 2371, 2373, 5, 65, 0, 0, 2372, 2374, 3, 40, 20, 0, 2373, 2372, 1, 0, 0, 0, 2373, 2374, 1, 0, 0, 0, 2374, 2375, 1, 0, 0, 0, 2375, 2376, 5, 102, 0, 0, 2376, 2378, 5, 57, 0, 0, 2377, 2379, 3, 396, 198, 0, 2378, 2377, 1, 0, 0, 0, 2378, 2379, 1, 0, 0, 0, 2379, 2380, 1, 0, 0, 0, 2380, 2381, 5, 58, 0, 0, 2381, 2420, 1, 0, 0, 0, 2382, 2383, 3, 56, 28, 0, 2383, 2385, 5, 65, 0, 0, 2384, 2386, 3, 40, 20, 0, 2385, 2384, 1, 0, 0, 0, 2385, 2386, 1, 0, 0, 0, 2386, 2387, 1, 0, 0, 0, 2387, 2388, 5, 102, 0, 0, 2388, 2390, 5, 57, 0, 0, 2389, 2391, 3, 396, 198, 0, 2390, 2389, 1, 0, 0, 0, 2390, 2391, 1, 0, 0, 0, 2391, 2392, 1, 0, 0, 0, 2392, 2393, 5, 58, 0, 0, 2393, 2420, 1, 0, 0, 0, 2394, 2395, 5, 40, 0, 0, 2395, 2397, 5, 65, 0, 0, 2396, 2398, 3, 40, 20, 0, 2397, 2396, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2399, 1, 0, 0, 0, 2399, 2400, 5, 102, 0, 0, 2400, 2402, 5, 57, 0, 0, 2401, 2403, 3, 396, 198, 0, 2402, 2401, 1, 0, 0, 0, 2402, 2403, 1, 0, 0, 0, 2403, 2404, 1, 0, 0, 0, 2404, 2420, 5, 58, 0, 0, 2405, 2406, 3, 52, 26, 0, 2406, 2407, 5, 65, 0, 0, 2407, 2408, 5, 40, 0, 0, 2408, 2410, 5, 65, 0, 0, 2409, 2411, 3, 40, 20, 0, 2410, 2409, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2412, 1, 0, 0, 0, 2412, 2413, 5, 102, 0, 0, 2413, 2415, 5, 57, 0, 0, 2414, 2416, 3, 396, 198, 0, 2415, 2414, 1, 0, 0, 0, 2415, 2416, 1, 0, 0, 0, 2416, 2417, 1, 0, 0, 0, 2417, 2418, 5, 58, 0, 0, 2418, 2420, 1, 0, 0, 0, 2419, 2363, 1, 0, 0, 0, 2419, 2370, 1, 0, 0, 0, 2419, 2382, 1, 0, 0, 0, 2419, 2394, 1, 0, 0, 0, 2419, 2405, 1, 0, 0, 0, 2420, 395, 1, 0, 0, 0, 2421, 2426, 3, 412, 206, 0, 2422, 2423, 5, 64, 0, 0, 2423, 2425, 3, 412, 206, 0, 2424, 2422, 1, 0, 0, 0, 2425, 2428, 1, 0, 0, 0, 2426, 2424, 1, 0, 0, 0, 2426, 2427, 1, 0, 0, 0, 2427, 397, 1, 0, 0, 0, 2428, 2426, 1, 0, 0, 0, 2429, 2430, 3, 56, 28, 0, 2430, 2432, 5, 90, 0, 0, 2431, 2433, 3, 40, 20, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 5, 102, 0, 0, 2435, 2477, 1, 0, 0, 0, 2436, 2437, 3, 10, 5, 0, 2437, 2439, 5, 90, 0, 0, 2438, 2440, 3, 40, 20, 0, 2439, 2438, 1, 0, 0, 0, 2439, 2440, 1, 0, 0, 0, 2440, 2441, 1, 0, 0, 0, 2441, 2442, 5, 102, 0, 0, 2442, 2477, 1, 0, 0, 0, 2443, 2444, 3, 350, 175, 0, 2444, 2446, 5, 90, 0, 0, 2445, 2447, 3, 40, 20, 0, 2446, 2445, 1, 0, 0, 0, 2446, 2447, 1, 0, 0, 0, 2447, 2448, 1, 0, 0, 0, 2448, 2449, 5, 102, 0, 0, 2449, 2477, 1, 0, 0, 0, 2450, 2451, 5, 40, 0, 0, 2451, 2453, 5, 90, 0, 0, 2452, 2454, 3, 40, 20, 0, 2453, 2452, 1, 0, 0, 0, 2453, 2454, 1, 0, 0, 0, 2454, 2455, 1, 0, 0, 0, 2455, 2477, 5, 102, 0, 0, 2456, 2457, 3, 52, 26, 0, 2457, 2458, 5, 65, 0, 0, 2458, 2459, 5, 40, 0, 0, 2459, 2461, 5, 90, 0, 0, 2460, 2462, 3, 40, 20, 0, 2461, 2460, 1, 0, 0, 0, 2461, 2462, 1, 0, 0, 0, 2462, 2463, 1, 0, 0, 0, 2463, 2464, 5, 102, 0, 0, 2464, 2477, 1, 0, 0, 0, 2465, 2466, 3, 14, 7, 0, 2466, 2468, 5, 90, 0, 0, 2467, 2469, 3, 40, 20, 0, 2468, 2467, 1, 0, 0, 0, 2468, 2469, 1, 0, 0, 0, 2469, 2470, 1, 0, 0, 0, 2470, 2471, 5, 31, 0, 0, 2471, 2477, 1, 0, 0, 0, 2472, 2473, 3, 28, 14, 0, 2473, 2474, 5, 90, 0, 0, 2474, 2475, 5, 31, 0, 0, 2475, 2477, 1, 0, 0, 0, 2476, 2429, 1, 0, 0, 0, 2476, 2436, 1, 0, 0, 0, 2476, 2443, 1, 0, 0, 0, 2476, 2450, 1, 0, 0, 0, 2476, 2456, 1, 0, 0, 0, 2476, 2465, 1, 0, 0, 0, 2476, 2472, 1, 0, 0, 0, 2477, 399, 1, 0, 0, 0, 2478, 2480, 5, 90, 0, 0, 2479, 2481, 3, 40, 20, 0, 2480, 2479, 1, 0, 0, 0, 2480, 2481, 1, 0, 0, 0, 2481, 2482, 1, 0, 0, 0, 2482, 2483, 5, 102, 0, 0, 2483, 401, 1, 0, 0, 0, 2484, 2485, 3, 56, 28, 0, 2485, 2487, 5, 90, 0, 0, 2486, 2488, 3, 40, 20, 0, 2487, 2486, 1, 0, 0, 0, 2487, 2488, 1, 0, 0, 0, 2488, 2489, 1, 0, 0, 0, 2489, 2490, 5, 102, 0, 0, 2490, 2525, 1, 0, 0, 0, 2491, 2492, 3, 10, 5, 0, 2492, 2494, 5, 90, 0, 0, 2493, 2495, 3, 40, 20, 0, 2494, 2493, 1, 0, 0, 0, 2494, 2495, 1, 0, 0, 0, 2495, 2496, 1, 0, 0, 0, 2496, 2497, 5, 102, 0, 0, 2497, 2525, 1, 0, 0, 0, 2498, 2499, 5, 40, 0, 0, 2499, 2501, 5, 90, 0, 0, 2500, 2502, 3, 40, 20, 0, 2501, 2500, 1, 0, 0, 0, 2501, 2502, 1, 0, 0, 0, 2502, 2503, 1, 0, 0, 0, 2503, 2525, 5, 102, 0, 0, 2504, 2505, 3, 52, 26, 0, 2505, 2506, 5, 65, 0, 0, 2506, 2507, 5, 40, 0, 0, 2507, 2509, 5, 90, 0, 0, 2508, 2510, 3, 40, 20, 0, 2509, 2508, 1, 0, 0, 0, 2509, 2510, 1, 0, 0, 0, 2510, 2511, 1, 0, 0, 0, 2511, 2512, 5, 102, 0, 0, 2512, 2525, 1, 0, 0, 0, 2513, 2514, 3, 14, 7, 0, 2514, 2516, 5, 90, 0, 0, 2515, 2517, 3, 40, 20, 0, 2516, 2515, 1, 0, 0, 0, 2516, 2517, 1, 0, 0, 0, 2517, 2518, 1, 0, 0, 0, 2518, 2519, 5, 31, 0, 0, 2519, 2525, 1, 0, 0, 0, 2520, 2521, 3, 28, 14, 0, 2521, 2522, 5, 90, 0, 0, 2522, 2523, 5, 31, 0, 0, 2523, 2525, 1, 0, 0, 0, 2524, 2484, 1, 0, 0, 0, 2524, 2491, 1, 0, 0, 0, 2524, 2498, 1, 0, 0, 0, 2524, 2504, 1, 0, 0, 0, 2524, 2513, 1, 0, 0, 0, 2524, 2520, 1, 0, 0, 0, 2525, 403, 1, 0, 0, 0, 2526, 2527, 5, 31, 0, 0, 2527, 2528, 3, 2, 1, 0, 2528, 2530, 3, 406, 203, 0, 2529, 2531, 3, 30, 15, 0, 2530, 2529, 1, 0, 0, 0, 2530, 2531, 1, 0, 0, 0, 2531, 2549, 1, 0, 0, 0, 2532, 2533, 5, 31, 0, 0, 2533, 2534, 3, 12, 6, 0, 2534, 2536, 3, 406, 203, 0, 2535, 2537, 3, 30, 15, 0, 2536, 2535, 1, 0, 0, 0, 2536, 2537, 1, 0, 0, 0, 2537, 2549, 1, 0, 0, 0, 2538, 2539, 5, 31, 0, 0, 2539, 2540, 3, 2, 1, 0, 2540, 2541, 3, 30, 15, 0, 2541, 2542, 3, 246, 123, 0, 2542, 2549, 1, 0, 0, 0, 2543, 2544, 5, 31, 0, 0, 2544, 2545, 3, 12, 6, 0, 2545, 2546, 3, 30, 15, 0, 2546, 2547, 3, 246, 123, 0, 2547, 2549, 1, 0, 0, 0, 2548, 2526, 1, 0, 0, 0, 2548, 2532, 1, 0, 0, 0, 2548, 2538, 1, 0, 0, 0, 2548, 2543, 1, 0, 0, 0, 2549, 405, 1, 0, 0, 0, 2550, 2554, 3, 408, 204, 0, 2551, 2553, 3, 408, 204, 0, 2552, 2551, 1, 0, 0, 0, 2553, 2556, 1, 0, 0, 0, 2554, 2552, 1, 0, 0, 0, 2554, 2555, 1, 0, 0, 0, 2555, 407, 1, 0, 0, 0, 2556, 2554, 1, 0, 0, 0, 2557, 2559, 3, 228, 114, 0, 2558, 2557, 1, 0, 0, 0, 2559, 2562, 1, 0, 0, 0, 2560, 2558, 1, 0, 0, 0, 2560, 2561, 1, 0, 0, 0, 2561, 2563, 1, 0, 0, 0, 2562, 2560, 1, 0, 0, 0, 2563, 2564, 5, 61, 0, 0, 2564, 2565, 3, 412, 206, 0, 2565, 2566, 5, 62, 0, 0, 2566, 409, 1, 0, 0, 0, 2567, 2568, 3, 412, 206, 0, 2568, 411, 1, 0, 0, 0, 2569, 2572, 3, 414, 207, 0, 2570, 2572, 3, 422, 211, 0, 2571, 2569, 1, 0, 0, 0, 2571, 2570, 1, 0, 0, 0, 2572, 413, 1, 0, 0, 0, 2573, 2574, 3, 416, 208, 0, 2574, 2575, 5, 89, 0, 0, 2575, 2576, 3, 420, 210, 0, 2576, 415, 1, 0, 0, 0, 2577, 2588, 5, 102, 0, 0, 2578, 2580, 5, 57, 0, 0, 2579, 2581, 3, 148, 74, 0, 2580, 2579, 1, 0, 0, 0, 2580, 2581, 1, 0, 0, 0, 2581, 2582, 1, 0, 0, 0, 2582, 2588, 5, 58, 0, 0, 2583, 2584, 5, 57, 0, 0, 2584, 2585, 3, 418, 209, 0, 2585, 2586, 5, 58, 0, 0, 2586, 2588, 1, 0, 0, 0, 2587, 2577, 1, 0, 0, 0, 2587, 2578, 1, 0, 0, 0, 2587, 2583, 1, 0, 0, 0, 2588, 417, 1, 0, 0, 0, 2589, 2594, 5, 102, 0, 0, 2590, 2591, 5, 64, 0, 0, 2591, 2593, 5, 102, 0, 0, 2592, 2590, 1, 0, 0, 0, 2593, 2596, 1, 0, 0, 0, 2594, 2592, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 419, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 2600, 3, 412, 206, 0, 2598, 2600, 3, 250, 125, 0, 2599, 2597, 1, 0, 0, 0, 2599, 2598, 1, 0, 0, 0, 2600, 421, 1, 0, 0, 0, 2601, 2604, 3, 430, 215, 0, 2602, 2604, 3, 424, 212, 0, 2603, 2601, 1, 0, 0, 0, 2603, 2602, 1, 0, 0, 0, 2604, 423, 1, 0, 0, 0, 2605, 2606, 3, 426, 213, 0, 2606, 2607, 3, 428, 214, 0, 2607, 2608, 3, 412, 206, 0, 2608, 425, 1, 0, 0, 0, 2609, 2613, 3, 56, 28, 0, 2610, 2613, 3, 378, 189, 0, 2611, 2613, 3, 384, 192, 0, 2612, 2609, 1, 0, 0, 0, 2612, 2610, 1, 0, 0, 0, 2612, 2611, 1, 0, 0, 0, 2613, 427, 1, 0, 0, 0, 2614, 2615, 7, 3, 0, 0, 2615, 429, 1, 0, 0, 0, 2616, 2624, 3, 432, 216, 0, 2617, 2618, 3, 432, 216, 0, 2618, 2619, 5, 71, 0, 0, 2619, 2620, 3, 412, 206, 0, 2620, 2621, 5, 72, 0, 0, 2621, 2622, 3, 430, 215, 0, 2622, 2624, 1, 0, 0, 0, 2623, 2616, 1, 0, 0, 0, 2623, 2617, 1, 0, 0, 0, 2624, 431, 1, 0, 0, 0, 2625, 2626, 6, 216, -1, 0, 2626, 2627, 3, 434, 217, 0, 2627, 2633, 1, 0, 0, 0, 2628, 2629, 10, 1, 0, 0, 2629, 2630, 5, 78, 0, 0, 2630, 2632, 3, 434, 217, 0, 2631, 2628, 1, 0, 0, 0, 2632, 2635, 1, 0, 0, 0, 2633, 2631, 1, 0, 0, 0, 2633, 2634, 1, 0, 0, 0, 2634, 433, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2636, 2637, 6, 217, -1, 0, 2637, 2638, 3, 436, 218, 0, 2638, 2644, 1, 0, 0, 0, 2639, 2640, 10, 1, 0, 0, 2640, 2641, 5, 77, 0, 0, 2641, 2643, 3, 436, 218, 0, 2642, 2639, 1, 0, 0, 0, 2643, 2646, 1, 0, 0, 0, 2644, 2642, 1, 0, 0, 0, 2644, 2645, 1, 0, 0, 0, 2645, 435, 1, 0, 0, 0, 2646, 2644, 1, 0, 0, 0, 2647, 2648, 6, 218, -1, 0, 2648, 2649, 3, 438, 219, 0, 2649, 2655, 1, 0, 0, 0, 2650, 2651, 10, 1, 0, 0, 2651, 2652, 5, 86, 0, 0, 2652, 2654, 3, 438, 219, 0, 2653, 2650, 1, 0, 0, 0, 2654, 2657, 1, 0, 0, 0, 2655, 2653, 1, 0, 0, 0, 2655, 2656, 1, 0, 0, 0, 2656, 437, 1, 0, 0, 0, 2657, 2655, 1, 0, 0, 0, 2658, 2659, 6, 219, -1, 0, 2659, 2660, 3, 440, 220, 0, 2660, 2666, 1, 0, 0, 0, 2661, 2662, 10, 1, 0, 0, 2662, 2663, 5, 87, 0, 0, 2663, 2665, 3, 440, 220, 0, 2664, 2661, 1, 0, 0, 0, 2665, 2668, 1, 0, 0, 0, 2666, 2664, 1, 0, 0, 0, 2666, 2667, 1, 0, 0, 0, 2667, 439, 1, 0, 0, 0, 2668, 2666, 1, 0, 0, 0, 2669, 2670, 6, 220, -1, 0, 2670, 2671, 3, 442, 221, 0, 2671, 2677, 1, 0, 0, 0, 2672, 2673, 10, 1, 0, 0, 2673, 2674, 5, 85, 0, 0, 2674, 2676, 3, 442, 221, 0, 2675, 2672, 1, 0, 0, 0, 2676, 2679, 1, 0, 0, 0, 2677, 2675, 1, 0, 0, 0, 2677, 2678, 1, 0, 0, 0, 2678, 441, 1, 0, 0, 0, 2679, 2677, 1, 0, 0, 0, 2680, 2681, 6, 221, -1, 0, 2681, 2682, 3, 444, 222, 0, 2682, 2691, 1, 0, 0, 0, 2683, 2684, 10, 2, 0, 0, 2684, 2685, 5, 73, 0, 0, 2685, 2690, 3, 444, 222, 0, 2686, 2687, 10, 1, 0, 0, 2687, 2688, 5, 76, 0, 0, 2688, 2690, 3, 444, 222, 0, 2689, 2683, 1, 0, 0, 0, 2689, 2686, 1, 0, 0, 0, 2690, 2693, 1, 0, 0, 0, 2691, 2689, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 443, 1, 0, 0, 0, 2693, 2691, 1, 0, 0, 0, 2694, 2695, 6, 222, -1, 0, 2695, 2696, 3, 446, 223, 0, 2696, 2714, 1, 0, 0, 0, 2697, 2698, 10, 5, 0, 0, 2698, 2699, 5, 68, 0, 0, 2699, 2713, 3, 446, 223, 0, 2700, 2701, 10, 4, 0, 0, 2701, 2702, 5, 67, 0, 0, 2702, 2713, 3, 446, 223, 0, 2703, 2704, 10, 3, 0, 0, 2704, 2705, 5, 74, 0, 0, 2705, 2713, 3, 446, 223, 0, 2706, 2707, 10, 2, 0, 0, 2707, 2708, 5, 75, 0, 0, 2708, 2713, 3, 446, 223, 0, 2709, 2710, 10, 1, 0, 0, 2710, 2711, 5, 26, 0, 0, 2711, 2713, 3, 10, 5, 0, 2712, 2697, 1, 0, 0, 0, 2712, 2700, 1, 0, 0, 0, 2712, 2703, 1, 0, 0, 0, 2712, 2706, 1, 0, 0, 0, 2712, 2709, 1, 0, 0, 0, 2713, 2716, 1, 0, 0, 0, 2714, 2712, 1, 0, 0, 0, 2714, 2715, 1, 0, 0, 0, 2715, 445, 1, 0, 0, 0, 2716, 2714, 1, 0, 0, 0, 2717, 2718, 6, 223, -1, 0, 2718, 2719, 3, 448, 224, 0, 2719, 2735, 1, 0, 0, 0, 2720, 2721, 10, 3, 0, 0, 2721, 2722, 5, 68, 0, 0, 2722, 2723, 5, 68, 0, 0, 2723, 2734, 3, 448, 224, 0, 2724, 2725, 10, 2, 0, 0, 2725, 2726, 5, 67, 0, 0, 2726, 2727, 5, 67, 0, 0, 2727, 2734, 3, 448, 224, 0, 2728, 2729, 10, 1, 0, 0, 2729, 2730, 5, 67, 0, 0, 2730, 2731, 5, 67, 0, 0, 2731, 2732, 5, 67, 0, 0, 2732, 2734, 3, 448, 224, 0, 2733, 2720, 1, 0, 0, 0, 2733, 2724, 1, 0, 0, 0, 2733, 2728, 1, 0, 0, 0, 2734, 2737, 1, 0, 0, 0, 2735, 2733, 1, 0, 0, 0, 2735, 2736, 1, 0, 0, 0, 2736, 447, 1, 0, 0, 0, 2737, 2735, 1, 0, 0, 0, 2738, 2739, 6, 224, -1, 0, 2739, 2740, 3, 450, 225, 0, 2740, 2749, 1, 0, 0, 0, 2741, 2742, 10, 2, 0, 0, 2742, 2743, 5, 81, 0, 0, 2743, 2748, 3, 450, 225, 0, 2744, 2745, 10, 1, 0, 0, 2745, 2746, 5, 82, 0, 0, 2746, 2748, 3, 450, 225, 0, 2747, 2741, 1, 0, 0, 0, 2747, 2744, 1, 0, 0, 0, 2748, 2751, 1, 0, 0, 0, 2749, 2747, 1, 0, 0, 0, 2749, 2750, 1, 0, 0, 0, 2750, 449, 1, 0, 0, 0, 2751, 2749, 1, 0, 0, 0, 2752, 2753, 6, 225, -1, 0, 2753, 2754, 3, 452, 226, 0, 2754, 2766, 1, 0, 0, 0, 2755, 2756, 10, 3, 0, 0, 2756, 2757, 5, 83, 0, 0, 2757, 2765, 3, 452, 226, 0, 2758, 2759, 10, 2, 0, 0, 2759, 2760, 5, 84, 0, 0, 2760, 2765, 3, 452, 226, 0, 2761, 2762, 10, 1, 0, 0, 2762, 2763, 5, 88, 0, 0, 2763, 2765, 3, 452, 226, 0, 2764, 2755, 1, 0, 0, 0, 2764, 2758, 1, 0, 0, 0, 2764, 2761, 1, 0, 0, 0, 2765, 2768, 1, 0, 0, 0, 2766, 2764, 1, 0, 0, 0, 2766, 2767, 1, 0, 0, 0, 2767, 451, 1, 0, 0, 0, 2768, 2766, 1, 0, 0, 0, 2769, 2777, 3, 454, 227, 0, 2770, 2777, 3, 456, 228, 0, 2771, 2772, 5, 81, 0, 0, 2772, 2777, 3, 452, 226, 0, 2773, 2774, 5, 82, 0, 0, 2774, 2777, 3, 452, 226, 0, 2775, 2777, 3, 458, 229, 0, 2776, 2769, 1, 0, 0, 0, 2776, 2770, 1, 0, 0, 0, 2776, 2771, 1, 0, 0, 0, 2776, 2773, 1, 0, 0, 0, 2776, 2775, 1, 0, 0, 0, 2777, 453, 1, 0, 0, 0, 2778, 2779, 5, 79, 0, 0, 2779, 2780, 3, 452, 226, 0, 2780, 455, 1, 0, 0, 0, 2781, 2782, 5, 80, 0, 0, 2782, 2783, 3, 452, 226, 0, 2783, 457, 1, 0, 0, 0, 2784, 2791, 3, 460, 230, 0, 2785, 2786, 5, 70, 0, 0, 2786, 2791, 3, 452, 226, 0, 2787, 2788, 5, 69, 0, 0, 2788, 2791, 3, 452, 226, 0, 2789, 2791, 3, 470, 235, 0, 2790, 2784, 1, 0, 0, 0, 2790, 2785, 1, 0, 0, 0, 2790, 2787, 1, 0, 0, 0, 2790, 2789, 1, 0, 0, 0, 2791, 459, 1, 0, 0, 0, 2792, 2795, 3, 350, 175, 0, 2793, 2795, 3, 56, 28, 0, 2794, 2792, 1, 0, 0, 0, 2794, 2793, 1, 0, 0, 0, 2795, 2800, 1, 0, 0, 0, 2796, 2799, 3, 464, 232, 0, 2797, 2799, 3, 468, 234, 0, 2798, 2796, 1, 0, 0, 0, 2798, 2797, 1, 0, 0, 0, 2799, 2802, 1, 0, 0, 0, 2800, 2798, 1, 0, 0, 0, 2800, 2801, 1, 0, 0, 0, 2801, 461, 1, 0, 0, 0, 2802, 2800, 1, 0, 0, 0, 2803, 2804, 3, 460, 230, 0, 2804, 2805, 5, 79, 0, 0, 2805, 463, 1, 0, 0, 0, 2806, 2807, 5, 79, 0, 0, 2807, 465, 1, 0, 0, 0, 2808, 2809, 3, 460, 230, 0, 2809, 2810, 5, 80, 0, 0, 2810, 467, 1, 0, 0, 0, 2811, 2812, 5, 80, 0, 0, 2812, 469, 1, 0, 0, 0, 2813, 2814, 5, 57, 0, 0, 2814, 2815, 3, 2, 1, 0, 2815, 2816, 5, 58, 0, 0, 2816, 2817, 3, 452, 226, 0, 2817, 2841, 1, 0, 0, 0, 2818, 2819, 5, 57, 0, 0, 2819, 2823, 3, 10, 5, 0, 2820, 2822, 3, 38, 19, 0, 2821, 2820, 1, 0, 0, 0, 2822, 2825, 1, 0, 0, 0, 2823, 2821, 1, 0, 0, 0, 2823, 2824, 1, 0, 0, 0, 2824, 2826, 1, 0, 0, 0, 2825, 2823, 1, 0, 0, 0, 2826, 2827, 5, 58, 0, 0, 2827, 2828, 3, 458, 229, 0, 2828, 2841, 1, 0, 0, 0, 2829, 2830, 5, 57, 0, 0, 2830, 2834, 3, 10, 5, 0, 2831, 2833, 3, 38, 19, 0, 2832, 2831, 1, 0, 0, 0, 2833, 2836, 1, 0, 0, 0, 2834, 2832, 1, 0, 0, 0, 2834, 2835, 1, 0, 0, 0, 2835, 2837, 1, 0, 0, 0, 2836, 2834, 1, 0, 0, 0, 2837, 2838, 5, 58, 0, 0, 2838, 2839, 3, 414, 207, 0, 2839, 2841, 1, 0, 0, 0, 2840, 2813, 1, 0, 0, 0, 2840, 2818, 1, 0, 0, 0, 2840, 2829, 1, 0, 0, 0, 2841, 471, 1, 0, 0, 0, 322, 477, 484, 488, 492, 501, 505, 509, 511, 517, 522, 529, 534, 536, 542, 547, 552, 557, 568, 582, 587, 595, 602, 608, 613, 624, 627, 641, 646, 651, 656, 662, 672, 680, 690, 698, 710, 714, 719, 725, 733, 746, 775, 779, 784, 790, 793, 796, 808, 819, 833, 840, 849, 856, 861, 876, 883, 889, 893, 897, 901, 905, 910, 914, 918, 920, 925, 932, 937, 939, 945, 950, 954, 973, 978, 994, 999, 1005, 1011, 1013, 1017, 1022, 1026, 1034, 1041, 1049, 1052, 1057, 1065, 1070, 1077, 1084, 1089, 1095, 1107, 1112, 1116, 1126, 1131, 1139, 1142, 1147, 1155, 1158, 1163, 1168, 1173, 1178, 1185, 1190, 1198, 1203, 1208, 1213, 1219, 1225, 1228, 1231, 1240, 1246, 1252, 1255, 1258, 1266, 1271, 1276, 1282, 1285, 1296, 1305, 1315, 1320, 1331, 1336, 1348, 1353, 1365, 1375, 1380, 1388, 1391, 1398, 1406, 1412, 1421, 1431, 1435, 1438, 1447, 1461, 1464, 1473, 1478, 1485, 1490, 1498, 1510, 1517, 1531, 1553, 1587, 1599, 1605, 1617, 1630, 1656, 1660, 1665, 1669, 1673, 1681, 1685, 1689, 1696, 1705, 1713, 1728, 1740, 1746, 1752, 1773, 1778, 1784, 1796, 1807, 1817, 1820, 1825, 1834, 1840, 1850, 1855, 1864, 1887, 1897, 1919, 1926, 1934, 1942, 1953, 1976, 1986, 1997, 2019, 2023, 2028, 2036, 2042, 2046, 2050, 2054, 2060, 2065, 2070, 2074, 2078, 2084, 2089, 2094, 2098, 2102, 2104, 2109, 2114, 2119, 2123, 2127, 2131, 2136, 2144, 2150, 2154, 2158, 2162, 2168, 2173, 2178, 2182, 2186, 2188, 2193, 2208, 2222, 2234, 2243, 2257, 2270, 2279, 2285, 2292, 2297, 2304, 2309, 2316, 2321, 2328, 2333, 2341, 2346, 2350, 2354, 2359, 2366, 2373, 2378, 2385, 2390, 2397, 2402, 2410, 2415, 2419, 2426, 2432, 2439, 2446, 2453, 2461, 2468, 2476, 2480, 2487, 2494, 2501, 2509, 2516, 2524, 2530, 2536, 2548, 2554, 2560, 2571, 2580, 2587, 2594, 2599, 2603, 2612, 2623, 2633, 2644, 2655, 2666, 2677, 2689, 2691, 2712, 2714, 2733, 2735, 2747, 2749, 2764, 2766, 2776, 2790, 2794, 2798, 2800, 2823, 2834, 2840] \ No newline at end of file diff --git a/Assignment-2/Java-8/.antlr/Java8Parser.java b/Assignment-2/Java-8/.antlr/Java8Parser.java new file mode 100644 index 0000000..a297338 --- /dev/null +++ b/Assignment-2/Java-8/.antlr/Java8Parser.java @@ -0,0 +1,18185 @@ +// Generated from /Users/mannpatel/Desktop/University/25-Fall/CPSC499/CPSC-499 Assignment/Assignment-2/Java-8/Java8Parser.g4 by ANTLR 4.13.1 +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", "CheckReturnValue"}) +public class Java8Parser extends Parser { + static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, + CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, + LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, + ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, + LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, + MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ARROW=89, COLONCOLON=90, + ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, + OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, + URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, + LINE_COMMENT=107; + public static final int + RULE_literal = 0, RULE_primitiveType = 1, RULE_numericType = 2, RULE_integralType = 3, + RULE_floatingPointType = 4, RULE_referenceType = 5, RULE_classOrInterfaceType = 6, + RULE_classType = 7, RULE_classType_lf_classOrInterfaceType = 8, RULE_classType_lfno_classOrInterfaceType = 9, + RULE_interfaceType = 10, RULE_interfaceType_lf_classOrInterfaceType = 11, + RULE_interfaceType_lfno_classOrInterfaceType = 12, RULE_typeVariable = 13, + RULE_arrayType = 14, RULE_dims = 15, RULE_typeParameter = 16, RULE_typeParameterModifier = 17, + RULE_typeBound = 18, RULE_additionalBound = 19, RULE_typeArguments = 20, + RULE_typeArgumentList = 21, RULE_typeArgument = 22, RULE_wildcard = 23, + RULE_wildcardBounds = 24, RULE_packageName = 25, RULE_typeName = 26, RULE_packageOrTypeName = 27, + RULE_expressionName = 28, RULE_methodName = 29, RULE_ambiguousName = 30, + RULE_compilationUnit = 31, RULE_packageDeclaration = 32, RULE_packageModifier = 33, + RULE_importDeclaration = 34, RULE_singleTypeImportDeclaration = 35, RULE_typeImportOnDemandDeclaration = 36, + RULE_singleStaticImportDeclaration = 37, RULE_staticImportOnDemandDeclaration = 38, + RULE_typeDeclaration = 39, RULE_classDeclaration = 40, RULE_normalClassDeclaration = 41, + RULE_classModifier = 42, RULE_typeParameters = 43, RULE_typeParameterList = 44, + RULE_superclass = 45, RULE_superinterfaces = 46, RULE_interfaceTypeList = 47, + RULE_classBody = 48, RULE_classBodyDeclaration = 49, RULE_classMemberDeclaration = 50, + RULE_fieldDeclaration = 51, RULE_fieldModifier = 52, RULE_variableDeclaratorList = 53, + RULE_variableDeclarator = 54, RULE_variableDeclaratorId = 55, RULE_variableInitializer = 56, + RULE_unannType = 57, RULE_unannPrimitiveType = 58, RULE_unannReferenceType = 59, + RULE_unannClassOrInterfaceType = 60, RULE_unannClassType = 61, RULE_unannClassType_lf_unannClassOrInterfaceType = 62, + RULE_unannClassType_lfno_unannClassOrInterfaceType = 63, RULE_unannInterfaceType = 64, + RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 65, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 66, + RULE_unannTypeVariable = 67, RULE_unannArrayType = 68, RULE_methodDeclaration = 69, + RULE_methodModifier = 70, RULE_methodHeader = 71, RULE_result = 72, RULE_methodDeclarator = 73, + RULE_formalParameterList = 74, RULE_formalParameters = 75, RULE_formalParameter = 76, + RULE_variableModifier = 77, RULE_lastFormalParameter = 78, RULE_receiverParameter = 79, + RULE_throws_ = 80, RULE_exceptionTypeList = 81, RULE_exceptionType = 82, + RULE_methodBody = 83, RULE_instanceInitializer = 84, RULE_staticInitializer = 85, + RULE_constructorDeclaration = 86, RULE_constructorModifier = 87, RULE_constructorDeclarator = 88, + RULE_simpleTypeName = 89, RULE_constructorBody = 90, RULE_explicitConstructorInvocation = 91, + RULE_enumDeclaration = 92, RULE_enumBody = 93, RULE_enumConstantList = 94, + RULE_enumConstant = 95, RULE_enumConstantModifier = 96, RULE_enumBodyDeclarations = 97, + RULE_interfaceDeclaration = 98, RULE_normalInterfaceDeclaration = 99, + RULE_interfaceModifier = 100, RULE_extendsInterfaces = 101, RULE_interfaceBody = 102, + RULE_interfaceMemberDeclaration = 103, RULE_constantDeclaration = 104, + RULE_constantModifier = 105, RULE_interfaceMethodDeclaration = 106, RULE_interfaceMethodModifier = 107, + RULE_annotationTypeDeclaration = 108, RULE_annotationTypeBody = 109, RULE_annotationTypeMemberDeclaration = 110, + RULE_annotationTypeElementDeclaration = 111, RULE_annotationTypeElementModifier = 112, + RULE_defaultValue = 113, RULE_annotation = 114, RULE_normalAnnotation = 115, + RULE_elementValuePairList = 116, RULE_elementValuePair = 117, RULE_elementValue = 118, + RULE_elementValueArrayInitializer = 119, RULE_elementValueList = 120, + RULE_markerAnnotation = 121, RULE_singleElementAnnotation = 122, RULE_arrayInitializer = 123, + RULE_variableInitializerList = 124, RULE_block = 125, RULE_blockStatements = 126, + RULE_blockStatement = 127, RULE_localVariableDeclarationStatement = 128, + RULE_localVariableDeclaration = 129, RULE_statement = 130, RULE_statementNoShortIf = 131, + RULE_statementWithoutTrailingSubstatement = 132, RULE_emptyStatement_ = 133, + RULE_labeledStatement = 134, RULE_labeledStatementNoShortIf = 135, RULE_expressionStatement = 136, + RULE_statementExpression = 137, RULE_ifThenStatement = 138, RULE_ifThenElseStatement = 139, + RULE_ifThenElseStatementNoShortIf = 140, RULE_assertStatement = 141, RULE_switchStatement = 142, + RULE_switchBlock = 143, RULE_switchBlockStatementGroup = 144, RULE_switchLabels = 145, + RULE_switchLabel = 146, RULE_enumConstantName = 147, RULE_whileStatement = 148, + RULE_whileStatementNoShortIf = 149, RULE_doStatement = 150, RULE_forStatement = 151, + RULE_forStatementNoShortIf = 152, RULE_basicForStatement = 153, RULE_basicForStatementNoShortIf = 154, + RULE_forInit = 155, RULE_forUpdate = 156, RULE_statementExpressionList = 157, + RULE_enhancedForStatement = 158, RULE_enhancedForStatementNoShortIf = 159, + RULE_breakStatement = 160, RULE_continueStatement = 161, RULE_returnStatement = 162, + RULE_throwStatement = 163, RULE_synchronizedStatement = 164, RULE_tryStatement = 165, + RULE_catches = 166, RULE_catchClause = 167, RULE_catchFormalParameter = 168, + RULE_catchType = 169, RULE_finally_ = 170, RULE_tryWithResourcesStatement = 171, + RULE_resourceSpecification = 172, RULE_resourceList = 173, RULE_resource = 174, + RULE_primary = 175, RULE_primaryNoNewArray = 176, RULE_primaryNoNewArray_lf_arrayAccess = 177, + RULE_primaryNoNewArray_lfno_arrayAccess = 178, RULE_primaryNoNewArray_lf_primary = 179, + RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 180, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 181, + RULE_primaryNoNewArray_lfno_primary = 182, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 183, + RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 184, + RULE_classInstanceCreationExpression = 185, RULE_classInstanceCreationExpression_lf_primary = 186, + RULE_classInstanceCreationExpression_lfno_primary = 187, RULE_typeArgumentsOrDiamond = 188, + RULE_fieldAccess = 189, RULE_fieldAccess_lf_primary = 190, RULE_fieldAccess_lfno_primary = 191, + RULE_arrayAccess = 192, RULE_arrayAccess_lf_primary = 193, RULE_arrayAccess_lfno_primary = 194, + RULE_methodInvocation = 195, RULE_methodInvocation_lf_primary = 196, RULE_methodInvocation_lfno_primary = 197, + RULE_argumentList = 198, RULE_methodReference = 199, RULE_methodReference_lf_primary = 200, + RULE_methodReference_lfno_primary = 201, RULE_arrayCreationExpression = 202, + RULE_dimExprs = 203, RULE_dimExpr = 204, RULE_constantExpression = 205, + RULE_expression = 206, RULE_lambdaExpression = 207, RULE_lambdaParameters = 208, + RULE_inferredFormalParameterList = 209, RULE_lambdaBody = 210, RULE_assignmentExpression = 211, + RULE_assignment = 212, RULE_leftHandSide = 213, RULE_assignmentOperator = 214, + RULE_conditionalExpression = 215, RULE_conditionalOrExpression = 216, + RULE_conditionalAndExpression = 217, RULE_inclusiveOrExpression = 218, + RULE_exclusiveOrExpression = 219, RULE_andExpression = 220, RULE_equalityExpression = 221, + RULE_relationalExpression = 222, RULE_shiftExpression = 223, RULE_additiveExpression = 224, + RULE_multiplicativeExpression = 225, RULE_unaryExpression = 226, RULE_preIncrementExpression = 227, + RULE_preDecrementExpression = 228, RULE_unaryExpressionNotPlusMinus = 229, + RULE_postfixExpression = 230, RULE_postIncrementExpression = 231, RULE_postIncrementExpression_lf_postfixExpression = 232, + RULE_postDecrementExpression = 233, RULE_postDecrementExpression_lf_postfixExpression = 234, + RULE_castExpression = 235; + private static String[] makeRuleNames() { + return new String[] { + "literal", "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", + "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" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", + "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", + "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, + null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", + "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", + "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'->'", "'::'", "'+='", + "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", + "'>>>='", null, "'@'", "'...'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + 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" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + 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 "Java8Parser.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); + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_literal); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(472); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 141863388262170624L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode BOOLEAN() { return getToken(Java8Parser.BOOLEAN, 0); } + public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveType; } + } + + public final PrimitiveTypeContext primitiveType() throws RecognitionException { + PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_primitiveType); + int _la; + try { + setState(488); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(477); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(474); + annotation(); + } + } + setState(479); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(480); + numericType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(484); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(481); + annotation(); + } + } + setState(486); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(487); + match(BOOLEAN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final NumericTypeContext numericType() throws RecognitionException { + NumericTypeContext _localctx = new NumericTypeContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_numericType); + try { + setState(492); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case INT: + case LONG: + case SHORT: + enterOuterAlt(_localctx, 1); + { + setState(490); + integralType(); + } + break; + case DOUBLE: + case FLOAT: + enterOuterAlt(_localctx, 2); + { + setState(491); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class IntegralTypeContext extends ParserRuleContext { + public TerminalNode BYTE() { return getToken(Java8Parser.BYTE, 0); } + public TerminalNode SHORT() { return getToken(Java8Parser.SHORT, 0); } + public TerminalNode INT() { return getToken(Java8Parser.INT, 0); } + public TerminalNode LONG() { return getToken(Java8Parser.LONG, 0); } + public TerminalNode CHAR() { return getToken(Java8Parser.CHAR, 0); } + public IntegralTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_integralType; } + } + + public final IntegralTypeContext integralType() throws RecognitionException { + IntegralTypeContext _localctx = new IntegralTypeContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_integralType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(494); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 138110042400L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class FloatingPointTypeContext extends ParserRuleContext { + public TerminalNode FLOAT() { return getToken(Java8Parser.FLOAT, 0); } + public TerminalNode DOUBLE() { return getToken(Java8Parser.DOUBLE, 0); } + public FloatingPointTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floatingPointType; } + } + + public final FloatingPointTypeContext floatingPointType() throws RecognitionException { + FloatingPointTypeContext _localctx = new FloatingPointTypeContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_floatingPointType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(496); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ReferenceTypeContext referenceType() throws RecognitionException { + ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_referenceType); + try { + setState(501); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(498); + classOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(499); + typeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(500); + arrayType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 List interfaceType_lf_classOrInterfaceType() { + return getRuleContexts(InterfaceType_lf_classOrInterfaceTypeContext.class); + } + public InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType(int i) { + return getRuleContext(InterfaceType_lf_classOrInterfaceTypeContext.class,i); + } + public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } + } + + public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { + ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_classOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(505); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + { + setState(503); + classType_lfno_classOrInterfaceType(); + } + break; + case 2: + { + setState(504); + interfaceType_lfno_classOrInterfaceType(); + } + break; + } + setState(511); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(509); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + setState(507); + classType_lf_classOrInterfaceType(); + } + break; + case 2: + { + setState(508); + interfaceType_lf_classOrInterfaceType(); + } + break; + } + } + } + setState(513); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ClassTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classType; } + } + + public final ClassTypeContext classType() throws RecognitionException { + ClassTypeContext _localctx = new ClassTypeContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_classType); + int _la; + try { + setState(536); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(517); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(514); + annotation(); + } + } + setState(519); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(520); + match(Identifier); + setState(522); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(521); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(524); + classOrInterfaceType(); + setState(525); + match(DOT); + setState(529); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(526); + annotation(); + } + } + setState(531); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(532); + match(Identifier); + setState(534); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(533); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassType_lf_classOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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; } + } + + public final ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() throws RecognitionException { + ClassType_lf_classOrInterfaceTypeContext _localctx = new ClassType_lf_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_classType_lf_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(538); + match(DOT); + setState(542); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(539); + annotation(); + } + } + setState(544); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(545); + match(Identifier); + setState(547); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + { + setState(546); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() throws RecognitionException { + ClassType_lfno_classOrInterfaceTypeContext _localctx = new ClassType_lfno_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_classType_lfno_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(552); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(549); + annotation(); + } + } + setState(554); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(555); + match(Identifier); + setState(557); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + { + setState(556); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InterfaceTypeContext interfaceType() throws RecognitionException { + InterfaceTypeContext _localctx = new InterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_interfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(559); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType() throws RecognitionException { + InterfaceType_lf_classOrInterfaceTypeContext _localctx = new InterfaceType_lf_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_interfaceType_lf_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(561); + classType_lf_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() throws RecognitionException { + InterfaceType_lfno_classOrInterfaceTypeContext _localctx = new InterfaceType_lfno_classOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_interfaceType_lfno_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(563); + classType_lfno_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final TypeVariableContext typeVariable() throws RecognitionException { + TypeVariableContext _localctx = new TypeVariableContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_typeVariable); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(568); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(565); + annotation(); + } + } + setState(570); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(571); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ArrayTypeContext arrayType() throws RecognitionException { + ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_arrayType); + try { + setState(582); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(573); + primitiveType(); + setState(574); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(576); + classOrInterfaceType(); + setState(577); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(579); + typeVariable(); + setState(580); + dims(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DimsContext extends ParserRuleContext { + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + 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; } + } + + public final DimsContext dims() throws RecognitionException { + DimsContext _localctx = new DimsContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_dims); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(587); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(584); + annotation(); + } + } + setState(589); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(590); + match(LBRACK); + setState(591); + match(RBRACK); + setState(602); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(595); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(592); + annotation(); + } + } + setState(597); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(598); + match(LBRACK); + setState(599); + match(RBRACK); + } + } + } + setState(604); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final TypeParameterContext typeParameter() throws RecognitionException { + TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_typeParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(608); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(605); + typeParameterModifier(); + } + } + setState(610); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(611); + match(Identifier); + setState(613); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(612); + typeBound(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { + TypeParameterModifierContext _localctx = new TypeParameterModifierContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_typeParameterModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(615); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeBoundContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + 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; } + } + + public final TypeBoundContext typeBound() throws RecognitionException { + TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_typeBound); + int _la; + try { + setState(627); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(617); + match(EXTENDS); + setState(618); + typeVariable(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(619); + match(EXTENDS); + setState(620); + classOrInterfaceType(); + setState(624); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(621); + additionalBound(); + } + } + setState(626); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AdditionalBoundContext extends ParserRuleContext { + public TerminalNode BITAND() { return getToken(Java8Parser.BITAND, 0); } + public InterfaceTypeContext interfaceType() { + return getRuleContext(InterfaceTypeContext.class,0); + } + public AdditionalBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additionalBound; } + } + + public final AdditionalBoundContext additionalBound() throws RecognitionException { + AdditionalBoundContext _localctx = new AdditionalBoundContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_additionalBound); + try { + enterOuterAlt(_localctx, 1); + { + setState(629); + match(BITAND); + setState(630); + interfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TypeArgumentListContext typeArgumentList() { + return getRuleContext(TypeArgumentListContext.class,0); + } + public TerminalNode GT() { return getToken(Java8Parser.GT, 0); } + public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArguments; } + } + + public final TypeArgumentsContext typeArguments() throws RecognitionException { + TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_typeArguments); + try { + enterOuterAlt(_localctx, 1); + { + setState(632); + match(LT); + setState(633); + typeArgumentList(); + setState(634); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentListContext extends ParserRuleContext { + public List typeArgument() { + return getRuleContexts(TypeArgumentContext.class); + } + public TypeArgumentContext typeArgument(int i) { + return getRuleContext(TypeArgumentContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public TypeArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgumentList; } + } + + public final TypeArgumentListContext typeArgumentList() throws RecognitionException { + TypeArgumentListContext _localctx = new TypeArgumentListContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_typeArgumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(636); + typeArgument(); + setState(641); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(637); + match(COMMA); + setState(638); + typeArgument(); + } + } + setState(643); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final TypeArgumentContext typeArgument() throws RecognitionException { + TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_typeArgument); + try { + setState(646); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(644); + referenceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(645); + wildcard(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WildcardContext extends ParserRuleContext { + public TerminalNode QUESTION() { return getToken(Java8Parser.QUESTION, 0); } + 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; } + } + + public final WildcardContext wildcard() throws RecognitionException { + WildcardContext _localctx = new WildcardContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_wildcard); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(651); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(648); + annotation(); + } + } + setState(653); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(654); + match(QUESTION); + setState(656); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS || _la==SUPER) { + { + setState(655); + wildcardBounds(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WildcardBoundsContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public WildcardBoundsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wildcardBounds; } + } + + public final WildcardBoundsContext wildcardBounds() throws RecognitionException { + WildcardBoundsContext _localctx = new WildcardBoundsContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_wildcardBounds); + try { + setState(662); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXTENDS: + enterOuterAlt(_localctx, 1); + { + setState(658); + match(EXTENDS); + setState(659); + referenceType(); + } + break; + case SUPER: + enterOuterAlt(_localctx, 2); + { + setState(660); + match(SUPER); + setState(661); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageNameContext packageName() { + return getRuleContext(PackageNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public PackageNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageName; } + } + + 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 = 50; + enterRecursionRule(_localctx, 50, RULE_packageName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(665); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(672); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageName); + setState(667); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(668); + match(DOT); + setState(669); + match(Identifier); + } + } + } + setState(674); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeName; } + } + + public final TypeNameContext typeName() throws RecognitionException { + TypeNameContext _localctx = new TypeNameContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_typeName); + try { + setState(680); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(675); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(676); + packageOrTypeName(0); + setState(677); + match(DOT); + setState(678); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageOrTypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public PackageOrTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageOrTypeName; } + } + + 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 = 54; + enterRecursionRule(_localctx, 54, RULE_packageOrTypeName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(683); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(690); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageOrTypeNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageOrTypeName); + setState(685); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(686); + match(DOT); + setState(687); + match(Identifier); + } + } + } + setState(692); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ExpressionNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionName; } + } + + public final ExpressionNameContext expressionName() throws RecognitionException { + ExpressionNameContext _localctx = new ExpressionNameContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_expressionName); + try { + setState(698); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(693); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(694); + ambiguousName(0); + setState(695); + match(DOT); + setState(696); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final MethodNameContext methodName() throws RecognitionException { + MethodNameContext _localctx = new MethodNameContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_methodName); + try { + enterOuterAlt(_localctx, 1); + { + setState(700); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AmbiguousNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public AmbiguousNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ambiguousName; } + } + + 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 = 60; + enterRecursionRule(_localctx, 60, RULE_ambiguousName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(703); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(710); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AmbiguousNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_ambiguousName); + setState(705); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(706); + match(DOT); + setState(707); + match(Identifier); + } + } + } + setState(712); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final CompilationUnitContext compilationUnit() throws RecognitionException { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_compilationUnit); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(714); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { + case 1: + { + setState(713); + packageDeclaration(); + } + break; + } + setState(719); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==IMPORT) { + { + { + setState(716); + importDeclaration(); + } + } + setState(721); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(725); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223371151822749182L) != 0) || _la==AT) { + { + { + setState(722); + typeDeclaration(); + } + } + setState(727); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(728); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageDeclarationContext extends ParserRuleContext { + public TerminalNode PACKAGE() { return getToken(Java8Parser.PACKAGE, 0); } + public PackageNameContext packageName() { + return getRuleContext(PackageNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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; } + } + + public final PackageDeclarationContext packageDeclaration() throws RecognitionException { + PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_packageDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(733); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(730); + packageModifier(); + } + } + setState(735); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(736); + match(PACKAGE); + setState(737); + packageName(0); + setState(738); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final PackageModifierContext packageModifier() throws RecognitionException { + PackageModifierContext _localctx = new PackageModifierContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_packageModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(740); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ImportDeclarationContext importDeclaration() throws RecognitionException { + ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_importDeclaration); + try { + setState(746); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(742); + singleTypeImportDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(743); + typeImportOnDemandDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(744); + singleStaticImportDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(745); + staticImportOnDemandDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleTypeImportDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public SingleTypeImportDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleTypeImportDeclaration; } + } + + public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { + SingleTypeImportDeclarationContext _localctx = new SingleTypeImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_singleTypeImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(748); + match(IMPORT); + setState(749); + typeName(); + setState(750); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeImportOnDemandDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TypeImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeImportOnDemandDeclaration; } + } + + public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { + TypeImportOnDemandDeclarationContext _localctx = new TypeImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_typeImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(752); + match(IMPORT); + setState(753); + packageOrTypeName(0); + setState(754); + match(DOT); + setState(755); + match(MUL); + setState(756); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleStaticImportDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public SingleStaticImportDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleStaticImportDeclaration; } + } + + public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { + SingleStaticImportDeclarationContext _localctx = new SingleStaticImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_singleStaticImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(758); + match(IMPORT); + setState(759); + match(STATIC); + setState(760); + typeName(); + setState(761); + match(DOT); + setState(762); + match(Identifier); + setState(763); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StaticImportOnDemandDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public StaticImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_staticImportOnDemandDeclaration; } + } + + public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { + StaticImportOnDemandDeclarationContext _localctx = new StaticImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_staticImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(765); + match(IMPORT); + setState(766); + match(STATIC); + setState(767); + typeName(); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeDeclarationContext extends ParserRuleContext { + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TypeDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeDeclaration; } + } + + public final TypeDeclarationContext typeDeclaration() throws RecognitionException { + TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_typeDeclaration); + try { + setState(775); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(772); + classDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(773); + interfaceDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(774); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ClassDeclarationContext classDeclaration() throws RecognitionException { + ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_classDeclaration); + try { + setState(779); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(777); + normalClassDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(778); + enumDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalClassDeclarationContext extends ParserRuleContext { + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + 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; } + } + + public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { + NormalClassDeclarationContext _localctx = new NormalClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_normalClassDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(784); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763525122L) != 0) || _la==AT) { + { + { + setState(781); + classModifier(); + } + } + setState(786); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(787); + match(CLASS); + setState(788); + match(Identifier); + setState(790); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(789); + typeParameters(); + } + } + + setState(793); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(792); + superclass(); + } + } + + setState(796); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(795); + superinterfaces(); + } + } + + setState(798); + classBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 0); } + public ClassModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classModifier; } + } + + public final ClassModifierContext classModifier() throws RecognitionException { + ClassModifierContext _localctx = new ClassModifierContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_classModifier); + try { + setState(808); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(800); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(801); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(802); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(803); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(804); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(805); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(806); + match(FINAL); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 8); + { + setState(807); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParametersContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TypeParameterListContext typeParameterList() { + return getRuleContext(TypeParameterListContext.class,0); + } + public TerminalNode GT() { return getToken(Java8Parser.GT, 0); } + public TypeParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameters; } + } + + public final TypeParametersContext typeParameters() throws RecognitionException { + TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_typeParameters); + try { + enterOuterAlt(_localctx, 1); + { + setState(810); + match(LT); + setState(811); + typeParameterList(); + setState(812); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParameterListContext extends ParserRuleContext { + public List typeParameter() { + return getRuleContexts(TypeParameterContext.class); + } + public TypeParameterContext typeParameter(int i) { + return getRuleContext(TypeParameterContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public TypeParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameterList; } + } + + public final TypeParameterListContext typeParameterList() throws RecognitionException { + TypeParameterListContext _localctx = new TypeParameterListContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_typeParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(814); + typeParameter(); + setState(819); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(815); + match(COMMA); + setState(816); + typeParameter(); + } + } + setState(821); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperclassContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public SuperclassContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superclass; } + } + + public final SuperclassContext superclass() throws RecognitionException { + SuperclassContext _localctx = new SuperclassContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_superclass); + try { + enterOuterAlt(_localctx, 1); + { + setState(822); + match(EXTENDS); + setState(823); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperinterfacesContext extends ParserRuleContext { + public TerminalNode IMPLEMENTS() { return getToken(Java8Parser.IMPLEMENTS, 0); } + public InterfaceTypeListContext interfaceTypeList() { + return getRuleContext(InterfaceTypeListContext.class,0); + } + public SuperinterfacesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superinterfaces; } + } + + public final SuperinterfacesContext superinterfaces() throws RecognitionException { + SuperinterfacesContext _localctx = new SuperinterfacesContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_superinterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(825); + match(IMPLEMENTS); + setState(826); + interfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceTypeListContext extends ParserRuleContext { + public List interfaceType() { + return getRuleContexts(InterfaceTypeContext.class); + } + public InterfaceTypeContext interfaceType(int i) { + return getRuleContext(InterfaceTypeContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public InterfaceTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceTypeList; } + } + + public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { + InterfaceTypeListContext _localctx = new InterfaceTypeListContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_interfaceTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(828); + interfaceType(); + setState(833); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(829); + match(COMMA); + setState(830); + interfaceType(); + } + } + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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; } + } + + public final ClassBodyContext classBody() throws RecognitionException { + ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_classBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(836); + match(LBRACE); + setState(840); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8645991068613655766L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(837); + classBodyDeclaration(); + } + } + setState(842); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(843); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 ConstructorDeclarationContext constructorDeclaration() { + return getRuleContext(ConstructorDeclarationContext.class,0); + } + public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } + } + + public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { + ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_classBodyDeclaration); + try { + setState(849); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(845); + classMemberDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(846); + instanceInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(847); + staticInitializer(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(848); + constructorDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public ClassMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classMemberDeclaration; } + } + + public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { + ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_classMemberDeclaration); + try { + setState(856); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(851); + fieldDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(852); + methodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(853); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(854); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(855); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public List fieldModifier() { + return getRuleContexts(FieldModifierContext.class); + } + public FieldModifierContext fieldModifier(int i) { + return getRuleContext(FieldModifierContext.class,i); + } + public FieldDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldDeclaration; } + } + + public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { + FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_fieldDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(861); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 633653705310208L) != 0) || _la==AT) { + { + { + setState(858); + fieldModifier(); + } + } + setState(863); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(864); + unannType(); + setState(865); + variableDeclaratorList(); + setState(866); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode TRANSIENT() { return getToken(Java8Parser.TRANSIENT, 0); } + public TerminalNode VOLATILE() { return getToken(Java8Parser.VOLATILE, 0); } + public FieldModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldModifier; } + } + + public final FieldModifierContext fieldModifier() throws RecognitionException { + FieldModifierContext _localctx = new FieldModifierContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_fieldModifier); + try { + setState(876); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(868); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(869); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(870); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(871); + match(PRIVATE); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(872); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 6); + { + setState(873); + match(FINAL); + } + break; + case TRANSIENT: + enterOuterAlt(_localctx, 7); + { + setState(874); + match(TRANSIENT); + } + break; + case VOLATILE: + enterOuterAlt(_localctx, 8); + { + setState(875); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorListContext extends ParserRuleContext { + public List variableDeclarator() { + return getRuleContexts(VariableDeclaratorContext.class); + } + public VariableDeclaratorContext variableDeclarator(int i) { + return getRuleContext(VariableDeclaratorContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public VariableDeclaratorListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclaratorList; } + } + + public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { + VariableDeclaratorListContext _localctx = new VariableDeclaratorListContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_variableDeclaratorList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(878); + variableDeclarator(); + setState(883); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(879); + match(COMMA); + setState(880); + variableDeclarator(); + } + } + setState(885); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorContext extends ParserRuleContext { + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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; } + } + + public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { + VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_variableDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(886); + variableDeclaratorId(); + setState(889); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGN) { + { + setState(887); + match(ASSIGN); + setState(888); + variableInitializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { + VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_variableDeclaratorId); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(891); + match(Identifier); + setState(893); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(892); + dims(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final VariableInitializerContext variableInitializer() throws RecognitionException { + VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_variableInitializer); + try { + setState(897); + _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(895); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(896); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannTypeContext unannType() throws RecognitionException { + UnannTypeContext _localctx = new UnannTypeContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_unannType); + try { + setState(901); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(899); + unannPrimitiveType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(900); + unannReferenceType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnannPrimitiveTypeContext extends ParserRuleContext { + public NumericTypeContext numericType() { + return getRuleContext(NumericTypeContext.class,0); + } + public TerminalNode BOOLEAN() { return getToken(Java8Parser.BOOLEAN, 0); } + public UnannPrimitiveTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unannPrimitiveType; } + } + + public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { + UnannPrimitiveTypeContext _localctx = new UnannPrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_unannPrimitiveType); + try { + setState(905); + _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(903); + numericType(); + } + break; + case BOOLEAN: + enterOuterAlt(_localctx, 2); + { + setState(904); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { + UnannReferenceTypeContext _localctx = new UnannReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_unannReferenceType); + try { + setState(910); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(907); + unannClassOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(908); + unannTypeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(909); + unannArrayType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { + UnannClassOrInterfaceTypeContext _localctx = new UnannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_unannClassOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(914); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { + case 1: + { + setState(912); + unannClassType_lfno_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(913); + unannInterfaceType_lfno_unannClassOrInterfaceType(); + } + break; + } + setState(920); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(918); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { + case 1: + { + setState(916); + unannClassType_lf_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(917); + unannInterfaceType_lf_unannClassOrInterfaceType(); + } + break; + } + } + } + setState(922); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 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; } + } + + public final UnannClassTypeContext unannClassType() throws RecognitionException { + UnannClassTypeContext _localctx = new UnannClassTypeContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_unannClassType); + int _la; + try { + setState(939); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(923); + match(Identifier); + setState(925); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(924); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(927); + unannClassOrInterfaceType(); + setState(928); + match(DOT); + setState(932); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(929); + annotation(); + } + } + setState(934); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(935); + match(Identifier); + setState(937); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(936); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnannClassType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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; } + } + + public final UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() throws RecognitionException { + UnannClassType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_unannClassType_lf_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(941); + match(DOT); + setState(945); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(942); + annotation(); + } + } + setState(947); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(948); + match(Identifier); + setState(950); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(949); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() throws RecognitionException { + UnannClassType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_unannClassType_lfno_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(952); + match(Identifier); + setState(954); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(953); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { + UnannInterfaceTypeContext _localctx = new UnannInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_unannInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(956); + unannClassType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType() throws RecognitionException { + UnannInterfaceType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_unannInterfaceType_lf_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(958); + unannClassType_lf_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() throws RecognitionException { + UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(960); + unannClassType_lfno_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { + UnannTypeVariableContext _localctx = new UnannTypeVariableContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_unannTypeVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(962); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final UnannArrayTypeContext unannArrayType() throws RecognitionException { + UnannArrayTypeContext _localctx = new UnannArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_unannArrayType); + try { + setState(973); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(964); + unannPrimitiveType(); + setState(965); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(967); + unannClassOrInterfaceType(); + setState(968); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(970); + unannTypeVariable(); + setState(971); + dims(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final MethodDeclarationContext methodDeclaration() throws RecognitionException { + MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_methodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 5283883778050L) != 0) || _la==AT) { + { + { + setState(975); + methodModifier(); + } + } + setState(980); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(981); + methodHeader(); + setState(982); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode SYNCHRONIZED() { return getToken(Java8Parser.SYNCHRONIZED, 0); } + public TerminalNode NATIVE() { return getToken(Java8Parser.NATIVE, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 0); } + public MethodModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodModifier; } + } + + public final MethodModifierContext methodModifier() throws RecognitionException { + MethodModifierContext _localctx = new MethodModifierContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_methodModifier); + try { + setState(994); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(984); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(985); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(986); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(987); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(988); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(989); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(990); + match(FINAL); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 8); + { + setState(991); + match(SYNCHRONIZED); + } + break; + case NATIVE: + enterOuterAlt(_localctx, 9); + { + setState(992); + match(NATIVE); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 10); + { + setState(993); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodHeaderContext extends ParserRuleContext { + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public MethodDeclaratorContext methodDeclarator() { + return getRuleContext(MethodDeclaratorContext.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; } + } + + public final MethodHeaderContext methodHeader() throws RecognitionException { + MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_methodHeader); + int _la; + try { + setState(1013); + _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(996); + result(); + setState(997); + methodDeclarator(); + setState(999); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(998); + throws_(); + } + } + + } + break; + case LT: + enterOuterAlt(_localctx, 2); + { + setState(1001); + typeParameters(); + setState(1005); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1002); + annotation(); + } + } + setState(1007); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1008); + result(); + setState(1009); + methodDeclarator(); + setState(1011); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1010); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResultContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public ResultContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_result; } + } + + public final ResultContext result() throws RecognitionException { + ResultContext _localctx = new ResultContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_result); + try { + setState(1017); + _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(1015); + unannType(); + } + break; + case VOID: + enterOuterAlt(_localctx, 2); + { + setState(1016); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodDeclaratorContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { + MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_methodDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1019); + match(Identifier); + setState(1020); + match(LPAREN); + setState(1022); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(1021); + formalParameterList(); + } + } + + setState(1024); + match(RPAREN); + setState(1026); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1025); + dims(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterListContext extends ParserRuleContext { + public ReceiverParameterContext receiverParameter() { + return getRuleContext(ReceiverParameterContext.class,0); + } + public FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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; } + } + + public final FormalParameterListContext formalParameterList() throws RecognitionException { + FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_formalParameterList); + try { + setState(1034); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,82,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1028); + receiverParameter(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1029); + formalParameters(); + setState(1030); + match(COMMA); + setState(1031); + lastFormalParameter(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1033); + lastFormalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParametersContext extends ParserRuleContext { + public List formalParameter() { + return getRuleContexts(FormalParameterContext.class); + } + public FormalParameterContext formalParameter(int i) { + return getRuleContext(FormalParameterContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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; } + } + + public final FormalParametersContext formalParameters() throws RecognitionException { + FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_formalParameters); + try { + int _alt; + setState(1052); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,85,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1036); + formalParameter(); + setState(1041); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,83,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1037); + match(COMMA); + setState(1038); + formalParameter(); + } + } + } + setState(1043); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,83,_ctx); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1044); + receiverParameter(); + setState(1049); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,84,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1045); + match(COMMA); + setState(1046); + formalParameter(); + } + } + } + setState(1051); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,84,_ctx); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterContext 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 FormalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameter; } + } + + public final FormalParameterContext formalParameter() throws RecognitionException { + FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_formalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1057); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1054); + variableModifier(); + } + } + setState(1059); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1060); + unannType(); + setState(1061); + variableDeclaratorId(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public VariableModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableModifier; } + } + + public final VariableModifierContext variableModifier() throws RecognitionException { + VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_variableModifier); + try { + setState(1065); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1063); + annotation(); + } + break; + case FINAL: + enterOuterAlt(_localctx, 2); + { + setState(1064); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class LastFormalParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode ELLIPSIS() { return getToken(Java8Parser.ELLIPSIS, 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; } + } + + public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { + LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_lastFormalParameter); + int _la; + try { + setState(1084); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1070); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1067); + variableModifier(); + } + } + setState(1072); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1073); + unannType(); + setState(1077); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1074); + annotation(); + } + } + setState(1079); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1080); + match(ELLIPSIS); + setState(1081); + variableDeclaratorId(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1083); + formalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReceiverParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ReceiverParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_receiverParameter; } + } + + public final ReceiverParameterContext receiverParameter() throws RecognitionException { + ReceiverParameterContext _localctx = new ReceiverParameterContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_receiverParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1089); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1086); + annotation(); + } + } + setState(1091); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1092); + unannType(); + setState(1095); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1093); + match(Identifier); + setState(1094); + match(DOT); + } + } + + setState(1097); + match(THIS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class Throws_Context extends ParserRuleContext { + public TerminalNode THROWS() { return getToken(Java8Parser.THROWS, 0); } + 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_; } + } + + public final Throws_Context throws_() throws RecognitionException { + Throws_Context _localctx = new Throws_Context(_ctx, getState()); + enterRule(_localctx, 160, RULE_throws_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1099); + match(THROWS); + setState(1100); + exceptionTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExceptionTypeListContext extends ParserRuleContext { + public List exceptionType() { + return getRuleContexts(ExceptionTypeContext.class); + } + public ExceptionTypeContext exceptionType(int i) { + return getRuleContext(ExceptionTypeContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public ExceptionTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exceptionTypeList; } + } + + public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { + ExceptionTypeListContext _localctx = new ExceptionTypeListContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_exceptionTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1102); + exceptionType(); + setState(1107); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1103); + match(COMMA); + setState(1104); + exceptionType(); + } + } + setState(1109); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ExceptionTypeContext exceptionType() throws RecognitionException { + ExceptionTypeContext _localctx = new ExceptionTypeContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_exceptionType); + try { + setState(1112); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,94,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1110); + classType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1111); + typeVariable(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodBodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public MethodBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodBody; } + } + + public final MethodBodyContext methodBody() throws RecognitionException { + MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_methodBody); + try { + setState(1116); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1114); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1115); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InstanceInitializerContext instanceInitializer() throws RecognitionException { + InstanceInitializerContext _localctx = new InstanceInitializerContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_instanceInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1118); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StaticInitializerContext extends ParserRuleContext { + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public StaticInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_staticInitializer; } + } + + public final StaticInitializerContext staticInitializer() throws RecognitionException { + StaticInitializerContext _localctx = new StaticInitializerContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_staticInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1120); + match(STATIC); + setState(1121); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { + ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_constructorDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1126); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 60129542144L) != 0) || _la==AT) { + { + { + setState(1123); + constructorModifier(); + } + } + setState(1128); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1129); + constructorDeclarator(); + setState(1131); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1130); + throws_(); + } + } + + setState(1133); + constructorBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public ConstructorModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorModifier; } + } + + public final ConstructorModifierContext constructorModifier() throws RecognitionException { + ConstructorModifierContext _localctx = new ConstructorModifierContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_constructorModifier); + try { + setState(1139); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1135); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1136); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1137); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1138); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorDeclaratorContext extends ParserRuleContext { + public SimpleTypeNameContext simpleTypeName() { + return getRuleContext(SimpleTypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { + ConstructorDeclaratorContext _localctx = new ConstructorDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_constructorDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1142); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1141); + typeParameters(); + } + } + + setState(1144); + simpleTypeName(); + setState(1145); + match(LPAREN); + setState(1147); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(1146); + formalParameterList(); + } + } + + setState(1149); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { + SimpleTypeNameContext _localctx = new SimpleTypeNameContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_simpleTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1151); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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; } + } + + public final ConstructorBodyContext constructorBody() throws RecognitionException { + ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_constructorBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1153); + match(LBRACE); + setState(1155); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,101,_ctx) ) { + case 1: + { + setState(1154); + explicitConstructorInvocation(); + } + break; + } + setState(1158); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1157); + blockStatements(); + } + } + + setState(1160); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExplicitConstructorInvocationContext extends ParserRuleContext { + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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; } + } + + public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { + ExplicitConstructorInvocationContext _localctx = new ExplicitConstructorInvocationContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_explicitConstructorInvocation); + int _la; + try { + setState(1208); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1163); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1162); + typeArguments(); + } + } + + setState(1165); + match(THIS); + setState(1166); + match(LPAREN); + setState(1168); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1167); + argumentList(); + } + } + + setState(1170); + match(RPAREN); + setState(1171); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1173); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1172); + typeArguments(); + } + } + + setState(1175); + match(SUPER); + setState(1176); + match(LPAREN); + setState(1178); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1177); + argumentList(); + } + } + + setState(1180); + match(RPAREN); + setState(1181); + match(SEMI); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1182); + expressionName(); + setState(1183); + match(DOT); + setState(1185); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1184); + typeArguments(); + } + } + + setState(1187); + match(SUPER); + setState(1188); + match(LPAREN); + setState(1190); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1189); + argumentList(); + } + } + + setState(1192); + match(RPAREN); + setState(1193); + match(SEMI); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1195); + primary(); + setState(1196); + match(DOT); + setState(1198); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1197); + typeArguments(); + } + } + + setState(1200); + match(SUPER); + setState(1201); + match(LPAREN); + setState(1203); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1202); + argumentList(); + } + } + + setState(1205); + match(RPAREN); + setState(1206); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumDeclarationContext extends ParserRuleContext { + public TerminalNode ENUM() { return getToken(Java8Parser.ENUM, 0); } + 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; } + } + + public final EnumDeclarationContext enumDeclaration() throws RecognitionException { + EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_enumDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1213); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763525122L) != 0) || _la==AT) { + { + { + setState(1210); + classModifier(); + } + } + setState(1215); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1216); + match(ENUM); + setState(1217); + match(Identifier); + setState(1219); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(1218); + superinterfaces(); + } + } + + setState(1221); + enumBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public EnumConstantListContext enumConstantList() { + return getRuleContext(EnumConstantListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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; } + } + + public final EnumBodyContext enumBody() throws RecognitionException { + EnumBodyContext _localctx = new EnumBodyContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_enumBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1223); + match(LBRACE); + setState(1225); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier || _la==AT) { + { + setState(1224); + enumConstantList(); + } + } + + setState(1228); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1227); + match(COMMA); + } + } + + setState(1231); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1230); + enumBodyDeclarations(); + } + } + + setState(1233); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumConstantListContext extends ParserRuleContext { + public List enumConstant() { + return getRuleContexts(EnumConstantContext.class); + } + public EnumConstantContext enumConstant(int i) { + return getRuleContext(EnumConstantContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public EnumConstantListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumConstantList; } + } + + public final EnumConstantListContext enumConstantList() throws RecognitionException { + EnumConstantListContext _localctx = new EnumConstantListContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_enumConstantList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1235); + enumConstant(); + setState(1240); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,117,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1236); + match(COMMA); + setState(1237); + enumConstant(); + } + } + } + setState(1242); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,117,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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; } + } + + public final EnumConstantContext enumConstant() throws RecognitionException { + EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_enumConstant); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1246); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1243); + enumConstantModifier(); + } + } + setState(1248); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1249); + match(Identifier); + setState(1255); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LPAREN) { + { + setState(1250); + match(LPAREN); + setState(1252); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1251); + argumentList(); + } + } + + setState(1254); + match(RPAREN); + } + } + + setState(1258); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(1257); + classBody(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { + EnumConstantModifierContext _localctx = new EnumConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_enumConstantModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(1260); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyDeclarationsContext extends ParserRuleContext { + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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; } + } + + public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { + EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_enumBodyDeclarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1262); + match(SEMI); + setState(1266); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8645991068613655766L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(1263); + classBodyDeclaration(); + } + } + setState(1268); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { + InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_interfaceDeclaration); + try { + setState(1271); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1269); + normalInterfaceDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1270); + annotationTypeDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalInterfaceDeclarationContext extends ParserRuleContext { + public TerminalNode INTERFACE() { return getToken(Java8Parser.INTERFACE, 0); } + 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; } + } + + public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { + NormalInterfaceDeclarationContext _localctx = new NormalInterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_normalInterfaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1276); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763262978L) != 0) || _la==AT) { + { + { + setState(1273); + interfaceModifier(); + } + } + setState(1278); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1279); + match(INTERFACE); + setState(1280); + match(Identifier); + setState(1282); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1281); + typeParameters(); + } + } + + setState(1285); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(1284); + extendsInterfaces(); + } + } + + setState(1287); + interfaceBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 0); } + public InterfaceModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceModifier; } + } + + public final InterfaceModifierContext interfaceModifier() throws RecognitionException { + InterfaceModifierContext _localctx = new InterfaceModifierContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_interfaceModifier); + try { + setState(1296); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1289); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1290); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1291); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1292); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(1293); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(1294); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 7); + { + setState(1295); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExtendsInterfacesContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + public InterfaceTypeListContext interfaceTypeList() { + return getRuleContext(InterfaceTypeListContext.class,0); + } + public ExtendsInterfacesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extendsInterfaces; } + } + + public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { + ExtendsInterfacesContext _localctx = new ExtendsInterfacesContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_extendsInterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(1298); + match(EXTENDS); + setState(1299); + interfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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; } + } + + public final InterfaceBodyContext interfaceBody() throws RecognitionException { + InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_interfaceBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1301); + match(LBRACE); + setState(1305); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223089538734927062L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(1302); + interfaceMemberDeclaration(); + } + } + setState(1307); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1308); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } + } + + public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { + InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_interfaceMemberDeclaration); + try { + setState(1315); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1310); + constantDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1311); + interfaceMethodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1312); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1313); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1314); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstantDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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; } + } + + public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { + ConstantDeclarationContext _localctx = new ConstantDeclarationContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_constantDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1320); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 309237907456L) != 0) || _la==AT) { + { + { + setState(1317); + constantModifier(); + } + } + setState(1322); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1323); + unannType(); + setState(1324); + variableDeclaratorList(); + setState(1325); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstantModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public ConstantModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constantModifier; } + } + + public final ConstantModifierContext constantModifier() throws RecognitionException { + ConstantModifierContext _localctx = new ConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_constantModifier); + try { + setState(1331); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1327); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1328); + match(PUBLIC); + } + break; + case STATIC: + enterOuterAlt(_localctx, 3); + { + setState(1329); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 4); + { + setState(1330); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { + InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_interfaceMethodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1336); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 858993463298L) != 0) || _la==AT) { + { + { + setState(1333); + interfaceMethodModifier(); + } + } + setState(1338); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1339); + methodHeader(); + setState(1340); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceMethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 0); } + public InterfaceMethodModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } + } + + public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { + InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_interfaceMethodModifier); + try { + setState(1348); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1342); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1343); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1344); + match(ABSTRACT); + } + break; + case DEFAULT: + enterOuterAlt(_localctx, 4); + { + setState(1345); + match(DEFAULT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(1346); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 6); + { + setState(1347); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeDeclarationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TerminalNode INTERFACE() { return getToken(Java8Parser.INTERFACE, 0); } + 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; } + } + + public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { + AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_annotationTypeDeclaration); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1353); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,134,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1350); + interfaceModifier(); + } + } + } + setState(1355); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,134,_ctx); + } + setState(1356); + match(AT); + setState(1357); + match(INTERFACE); + setState(1358); + match(Identifier); + setState(1359); + annotationTypeBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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; } + } + + public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { + AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_annotationTypeBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1361); + match(LBRACE); + setState(1365); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223371013711641814L) != 0) || _la==Identifier || _la==AT) { + { + { + setState(1362); + annotationTypeMemberDeclaration(); + } + } + setState(1367); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1368); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public AnnotationTypeMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeMemberDeclaration; } + } + + public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { + AnnotationTypeMemberDeclarationContext _localctx = new AnnotationTypeMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_annotationTypeMemberDeclaration); + try { + setState(1375); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1370); + annotationTypeElementDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1371); + constantDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1372); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1373); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1374); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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; } + } + + public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { + AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_annotationTypeElementDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1380); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==ABSTRACT || _la==PUBLIC || _la==AT) { + { + { + setState(1377); + annotationTypeElementModifier(); + } + } + setState(1382); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1383); + unannType(); + setState(1384); + match(Identifier); + setState(1385); + match(LPAREN); + setState(1386); + match(RPAREN); + setState(1388); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1387); + dims(); + } + } + + setState(1391); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(1390); + defaultValue(); + } + } + + setState(1393); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public AnnotationTypeElementModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeElementModifier; } + } + + public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { + AnnotationTypeElementModifierContext _localctx = new AnnotationTypeElementModifierContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_annotationTypeElementModifier); + try { + setState(1398); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1395); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1396); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1397); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class DefaultValueContext extends ParserRuleContext { + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 0); } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public DefaultValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_defaultValue; } + } + + public final DefaultValueContext defaultValue() throws RecognitionException { + DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_defaultValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(1400); + match(DEFAULT); + setState(1401); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final AnnotationContext annotation() throws RecognitionException { + AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_annotation); + try { + setState(1406); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1403); + normalAnnotation(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1404); + markerAnnotation(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1405); + singleElementAnnotation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final NormalAnnotationContext normalAnnotation() throws RecognitionException { + NormalAnnotationContext _localctx = new NormalAnnotationContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_normalAnnotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1408); + match(AT); + setState(1409); + typeName(); + setState(1410); + match(LPAREN); + setState(1412); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1411); + elementValuePairList(); + } + } + + setState(1414); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairListContext extends ParserRuleContext { + public List elementValuePair() { + return getRuleContexts(ElementValuePairContext.class); + } + public ElementValuePairContext elementValuePair(int i) { + return getRuleContext(ElementValuePairContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public ElementValuePairListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValuePairList; } + } + + public final ElementValuePairListContext elementValuePairList() throws RecognitionException { + ElementValuePairListContext _localctx = new ElementValuePairListContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_elementValuePairList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1416); + elementValuePair(); + setState(1421); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1417); + match(COMMA); + setState(1418); + elementValuePair(); + } + } + setState(1423); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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; } + } + + public final ElementValuePairContext elementValuePair() throws RecognitionException { + ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_elementValuePair); + try { + enterOuterAlt(_localctx, 1); + { + setState(1424); + match(Identifier); + setState(1425); + match(ASSIGN); + setState(1426); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ElementValueContext elementValue() throws RecognitionException { + ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_elementValue); + try { + setState(1431); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1428); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1429); + elementValueArrayInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1430); + annotation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public ElementValueListContext elementValueList() { + return getRuleContext(ElementValueListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 0); } + public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } + } + + public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { + ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_elementValueArrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1433); + match(LBRACE); + setState(1435); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 862730839481401640L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1434); + elementValueList(); + } + } + + setState(1438); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1437); + match(COMMA); + } + } + + setState(1440); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueListContext extends ParserRuleContext { + public List elementValue() { + return getRuleContexts(ElementValueContext.class); + } + public ElementValueContext elementValue(int i) { + return getRuleContext(ElementValueContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public ElementValueListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValueList; } + } + + public final ElementValueListContext elementValueList() throws RecognitionException { + ElementValueListContext _localctx = new ElementValueListContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_elementValueList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1442); + elementValue(); + setState(1447); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1443); + match(COMMA); + setState(1444); + elementValue(); + } + } + } + setState(1449); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MarkerAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public MarkerAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_markerAnnotation; } + } + + public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { + MarkerAnnotationContext _localctx = new MarkerAnnotationContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_markerAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1450); + match(AT); + setState(1451); + typeName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleElementAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public SingleElementAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleElementAnnotation; } + } + + public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { + SingleElementAnnotationContext _localctx = new SingleElementAnnotationContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_singleElementAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1453); + match(AT); + setState(1454); + typeName(); + setState(1455); + match(LPAREN); + setState(1456); + elementValue(); + setState(1457); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public VariableInitializerListContext variableInitializerList() { + return getRuleContext(VariableInitializerListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 0); } + public ArrayInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayInitializer; } + } + + public final ArrayInitializerContext arrayInitializer() throws RecognitionException { + ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_arrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1459); + match(LBRACE); + setState(1461); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 862730839481401640L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1460); + variableInitializerList(); + } + } + + setState(1464); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1463); + match(COMMA); + } + } + + setState(1466); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableInitializerListContext extends ParserRuleContext { + public List variableInitializer() { + return getRuleContexts(VariableInitializerContext.class); + } + public VariableInitializerContext variableInitializer(int i) { + return getRuleContext(VariableInitializerContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public VariableInitializerListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableInitializerList; } + } + + public final VariableInitializerListContext variableInitializerList() throws RecognitionException { + VariableInitializerListContext _localctx = new VariableInitializerListContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_variableInitializerList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1468); + variableInitializer(); + setState(1473); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,150,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1469); + match(COMMA); + setState(1470); + variableInitializer(); + } + } + } + setState(1475); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,150,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlockContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public BlockStatementsContext blockStatements() { + return getRuleContext(BlockStatementsContext.class,0); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1476); + match(LBRACE); + setState(1478); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1477); + blockStatements(); + } + } + + setState(1480); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final BlockStatementsContext blockStatements() throws RecognitionException { + BlockStatementsContext _localctx = new BlockStatementsContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_blockStatements); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1483); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1482); + blockStatement(); + } + } + setState(1485); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final BlockStatementContext blockStatement() throws RecognitionException { + BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_blockStatement); + try { + setState(1490); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1487); + localVariableDeclarationStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1488); + classDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1489); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalVariableDeclarationStatementContext extends ParserRuleContext { + public LocalVariableDeclarationContext localVariableDeclaration() { + return getRuleContext(LocalVariableDeclarationContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } + } + + public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { + LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_localVariableDeclarationStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1492); + localVariableDeclaration(); + setState(1493); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalVariableDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.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; } + } + + public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { + LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_localVariableDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1495); + variableModifier(); + } + } + setState(1500); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1501); + unannType(); + setState(1502); + variableDeclaratorList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_statement); + try { + setState(1510); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,155,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1504); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1505); + labeledStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1506); + ifThenStatement(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1507); + ifThenElseStatement(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1508); + whileStatement(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1509); + forStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { + StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_statementNoShortIf); + try { + setState(1517); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1512); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1513); + labeledStatementNoShortIf(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1514); + ifThenElseStatementNoShortIf(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1515); + whileStatementNoShortIf(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1516); + forStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementWithoutTrailingSubstatementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public EmptyStatement_Context emptyStatement_() { + return getRuleContext(EmptyStatement_Context.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; } + } + + public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { + StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_statementWithoutTrailingSubstatement); + try { + setState(1531); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1519); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1520); + 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(1521); + expressionStatement(); + } + break; + case ASSERT: + enterOuterAlt(_localctx, 4); + { + setState(1522); + assertStatement(); + } + break; + case SWITCH: + enterOuterAlt(_localctx, 5); + { + setState(1523); + switchStatement(); + } + break; + case DO: + enterOuterAlt(_localctx, 6); + { + setState(1524); + doStatement(); + } + break; + case BREAK: + enterOuterAlt(_localctx, 7); + { + setState(1525); + breakStatement(); + } + break; + case CONTINUE: + enterOuterAlt(_localctx, 8); + { + setState(1526); + continueStatement(); + } + break; + case RETURN: + enterOuterAlt(_localctx, 9); + { + setState(1527); + returnStatement(); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 10); + { + setState(1528); + synchronizedStatement(); + } + break; + case THROW: + enterOuterAlt(_localctx, 11); + { + setState(1529); + throwStatement(); + } + break; + case TRY: + enterOuterAlt(_localctx, 12); + { + setState(1530); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EmptyStatement_Context extends ParserRuleContext { + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public EmptyStatement_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyStatement_; } + } + + public final EmptyStatement_Context emptyStatement_() throws RecognitionException { + EmptyStatement_Context _localctx = new EmptyStatement_Context(_ctx, getState()); + enterRule(_localctx, 266, RULE_emptyStatement_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1533); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledStatementContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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; } + } + + public final LabeledStatementContext labeledStatement() throws RecognitionException { + LabeledStatementContext _localctx = new LabeledStatementContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_labeledStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1535); + match(Identifier); + setState(1536); + match(COLON); + setState(1537); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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; } + } + + public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { + LabeledStatementNoShortIfContext _localctx = new LabeledStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_labeledStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1539); + match(Identifier); + setState(1540); + match(COLON); + setState(1541); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionStatementContext extends ParserRuleContext { + public StatementExpressionContext statementExpression() { + return getRuleContext(StatementExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public ExpressionStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionStatement; } + } + + public final ExpressionStatementContext expressionStatement() throws RecognitionException { + ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_expressionStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1543); + statementExpression(); + setState(1544); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final StatementExpressionContext statementExpression() throws RecognitionException { + StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_statementExpression); + try { + setState(1553); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1546); + assignment(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1547); + preIncrementExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1548); + preDecrementExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1549); + postIncrementExpression(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1550); + postDecrementExpression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1551); + methodInvocation(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1552); + classInstanceCreationExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenStatementContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final IfThenStatementContext ifThenStatement() throws RecognitionException { + IfThenStatementContext _localctx = new IfThenStatementContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_ifThenStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1555); + match(IF); + setState(1556); + match(LPAREN); + setState(1557); + expression(); + setState(1558); + match(RPAREN); + setState(1559); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenElseStatementContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public TerminalNode ELSE() { return getToken(Java8Parser.ELSE, 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; } + } + + public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { + IfThenElseStatementContext _localctx = new IfThenElseStatementContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_ifThenElseStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1561); + match(IF); + setState(1562); + match(LPAREN); + setState(1563); + expression(); + setState(1564); + match(RPAREN); + setState(1565); + statementNoShortIf(); + setState(1566); + match(ELSE); + setState(1567); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenElseStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public List statementNoShortIf() { + return getRuleContexts(StatementNoShortIfContext.class); + } + public StatementNoShortIfContext statementNoShortIf(int i) { + return getRuleContext(StatementNoShortIfContext.class,i); + } + public TerminalNode ELSE() { return getToken(Java8Parser.ELSE, 0); } + public IfThenElseStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifThenElseStatementNoShortIf; } + } + + public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { + IfThenElseStatementNoShortIfContext _localctx = new IfThenElseStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_ifThenElseStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1569); + match(IF); + setState(1570); + match(LPAREN); + setState(1571); + expression(); + setState(1572); + match(RPAREN); + setState(1573); + statementNoShortIf(); + setState(1574); + match(ELSE); + setState(1575); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssertStatementContext extends ParserRuleContext { + public TerminalNode ASSERT() { return getToken(Java8Parser.ASSERT, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public AssertStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assertStatement; } + } + + public final AssertStatementContext assertStatement() throws RecognitionException { + AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_assertStatement); + try { + setState(1587); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1577); + match(ASSERT); + setState(1578); + expression(); + setState(1579); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1581); + match(ASSERT); + setState(1582); + expression(); + setState(1583); + match(COLON); + setState(1584); + expression(); + setState(1585); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchStatementContext extends ParserRuleContext { + public TerminalNode SWITCH() { return getToken(Java8Parser.SWITCH, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final SwitchStatementContext switchStatement() throws RecognitionException { + SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_switchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1589); + match(SWITCH); + setState(1590); + match(LPAREN); + setState(1591); + expression(); + setState(1592); + match(RPAREN); + setState(1593); + switchBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchBlockContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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; } + } + + public final SwitchBlockContext switchBlock() throws RecognitionException { + SwitchBlockContext _localctx = new SwitchBlockContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_switchBlock); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1595); + match(LBRACE); + setState(1599); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1596); + switchBlockStatementGroup(); + } + } + } + setState(1601); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + } + setState(1605); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1602); + switchLabel(); + } + } + setState(1607); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1608); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { + SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_switchBlockStatementGroup); + try { + enterOuterAlt(_localctx, 1); + { + setState(1610); + switchLabels(); + setState(1611); + blockStatements(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final SwitchLabelsContext switchLabels() throws RecognitionException { + SwitchLabelsContext _localctx = new SwitchLabelsContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_switchLabels); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1613); + switchLabel(); + setState(1617); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1614); + switchLabel(); + } + } + setState(1619); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(Java8Parser.CASE, 0); } + public ConstantExpressionContext constantExpression() { + return getRuleContext(ConstantExpressionContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public EnumConstantNameContext enumConstantName() { + return getRuleContext(EnumConstantNameContext.class,0); + } + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 0); } + public SwitchLabelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchLabel; } + } + + public final SwitchLabelContext switchLabel() throws RecognitionException { + SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_switchLabel); + try { + setState(1630); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1620); + match(CASE); + setState(1621); + constantExpression(); + setState(1622); + match(COLON); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1624); + match(CASE); + setState(1625); + enumConstantName(); + setState(1626); + match(COLON); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1628); + match(DEFAULT); + setState(1629); + match(COLON); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final EnumConstantNameContext enumConstantName() throws RecognitionException { + EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_enumConstantName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1632); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhileStatementContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final WhileStatementContext whileStatement() throws RecognitionException { + WhileStatementContext _localctx = new WhileStatementContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_whileStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1634); + match(WHILE); + setState(1635); + match(LPAREN); + setState(1636); + expression(); + setState(1637); + match(RPAREN); + setState(1638); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhileStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { + WhileStatementNoShortIfContext _localctx = new WhileStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_whileStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1640); + match(WHILE); + setState(1641); + match(LPAREN); + setState(1642); + expression(); + setState(1643); + match(RPAREN); + setState(1644); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DoStatementContext extends ParserRuleContext { + public TerminalNode DO() { return getToken(Java8Parser.DO, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public DoStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_doStatement; } + } + + public final DoStatementContext doStatement() throws RecognitionException { + DoStatementContext _localctx = new DoStatementContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_doStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1646); + match(DO); + setState(1647); + statement(); + setState(1648); + match(WHILE); + setState(1649); + match(LPAREN); + setState(1650); + expression(); + setState(1651); + match(RPAREN); + setState(1652); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ForStatementContext forStatement() throws RecognitionException { + ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_forStatement); + try { + setState(1656); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1654); + basicForStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1655); + enhancedForStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { + ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_forStatementNoShortIf); + try { + setState(1660); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1658); + basicForStatementNoShortIf(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1659); + enhancedForStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BasicForStatementContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, i); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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; } + } + + public final BasicForStatementContext basicForStatement() throws RecognitionException { + BasicForStatementContext _localctx = new BasicForStatementContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_basicForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1662); + match(FOR); + setState(1663); + match(LPAREN); + setState(1665); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087178240296L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1664); + forInit(); + } + } + + setState(1667); + match(SEMI); + setState(1669); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1668); + expression(); + } + } + + setState(1671); + match(SEMI); + setState(1673); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1672); + forUpdate(); + } + } + + setState(1675); + match(RPAREN); + setState(1676); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BasicForStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, i); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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; } + } + + public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { + BasicForStatementNoShortIfContext _localctx = new BasicForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_basicForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1678); + match(FOR); + setState(1679); + match(LPAREN); + setState(1681); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087178240296L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1680); + forInit(); + } + } + + setState(1683); + match(SEMI); + setState(1685); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1684); + expression(); + } + } + + setState(1687); + match(SEMI); + setState(1689); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1688); + forUpdate(); + } + } + + setState(1691); + match(RPAREN); + setState(1692); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ForInitContext forInit() throws RecognitionException { + ForInitContext _localctx = new ForInitContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_forInit); + try { + setState(1696); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1694); + statementExpressionList(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1695); + localVariableDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ForUpdateContext forUpdate() throws RecognitionException { + ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_forUpdate); + try { + enterOuterAlt(_localctx, 1); + { + setState(1698); + statementExpressionList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementExpressionListContext extends ParserRuleContext { + public List statementExpression() { + return getRuleContexts(StatementExpressionContext.class); + } + public StatementExpressionContext statementExpression(int i) { + return getRuleContext(StatementExpressionContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public StatementExpressionListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementExpressionList; } + } + + public final StatementExpressionListContext statementExpressionList() throws RecognitionException { + StatementExpressionListContext _localctx = new StatementExpressionListContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_statementExpressionList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1700); + statementExpression(); + setState(1705); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1701); + match(COMMA); + setState(1702); + statementExpression(); + } + } + setState(1707); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnhancedForStatementContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { + EnhancedForStatementContext _localctx = new EnhancedForStatementContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_enhancedForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1708); + match(FOR); + setState(1709); + match(LPAREN); + setState(1713); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1710); + variableModifier(); + } + } + setState(1715); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1716); + unannType(); + setState(1717); + variableDeclaratorId(); + setState(1718); + match(COLON); + setState(1719); + expression(); + setState(1720); + match(RPAREN); + setState(1721); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnhancedForStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { + EnhancedForStatementNoShortIfContext _localctx = new EnhancedForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_enhancedForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1723); + match(FOR); + setState(1724); + match(LPAREN); + setState(1728); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1725); + variableModifier(); + } + } + setState(1730); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1731); + unannType(); + setState(1732); + variableDeclaratorId(); + setState(1733); + match(COLON); + setState(1734); + expression(); + setState(1735); + match(RPAREN); + setState(1736); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BreakStatementContext extends ParserRuleContext { + public TerminalNode BREAK() { return getToken(Java8Parser.BREAK, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public BreakStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_breakStatement; } + } + + public final BreakStatementContext breakStatement() throws RecognitionException { + BreakStatementContext _localctx = new BreakStatementContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_breakStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1738); + match(BREAK); + setState(1740); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1739); + match(Identifier); + } + } + + setState(1742); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ContinueStatementContext extends ParserRuleContext { + public TerminalNode CONTINUE() { return getToken(Java8Parser.CONTINUE, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public ContinueStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_continueStatement; } + } + + public final ContinueStatementContext continueStatement() throws RecognitionException { + ContinueStatementContext _localctx = new ContinueStatementContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_continueStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1744); + match(CONTINUE); + setState(1746); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1745); + match(Identifier); + } + } + + setState(1748); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnStatementContext extends ParserRuleContext { + public TerminalNode RETURN() { return getToken(Java8Parser.RETURN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ReturnStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatement; } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_returnStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1750); + match(RETURN); + setState(1752); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1751); + expression(); + } + } + + setState(1754); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ThrowStatementContext extends ParserRuleContext { + public TerminalNode THROW() { return getToken(Java8Parser.THROW, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public ThrowStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_throwStatement; } + } + + public final ThrowStatementContext throwStatement() throws RecognitionException { + ThrowStatementContext _localctx = new ThrowStatementContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_throwStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1756); + match(THROW); + setState(1757); + expression(); + setState(1758); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SynchronizedStatementContext extends ParserRuleContext { + public TerminalNode SYNCHRONIZED() { return getToken(Java8Parser.SYNCHRONIZED, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { + SynchronizedStatementContext _localctx = new SynchronizedStatementContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_synchronizedStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1760); + match(SYNCHRONIZED); + setState(1761); + match(LPAREN); + setState(1762); + expression(); + setState(1763); + match(RPAREN); + setState(1764); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryStatementContext extends ParserRuleContext { + public TerminalNode TRY() { return getToken(Java8Parser.TRY, 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 tryWithResourcesStatement() { + return getRuleContext(TryWithResourcesStatementContext.class,0); + } + public TryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tryStatement; } + } + + public final TryStatementContext tryStatement() throws RecognitionException { + TryStatementContext _localctx = new TryStatementContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_tryStatement); + int _la; + try { + setState(1778); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1766); + match(TRY); + setState(1767); + block(); + setState(1768); + catches(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1770); + match(TRY); + setState(1771); + block(); + setState(1773); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1772); + catches(); + } + } + + setState(1775); + finally_(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1777); + tryWithResourcesStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final CatchesContext catches() throws RecognitionException { + CatchesContext _localctx = new CatchesContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_catches); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1780); + catchClause(); + setState(1784); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CATCH) { + { + { + setState(1781); + catchClause(); + } + } + setState(1786); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchClauseContext extends ParserRuleContext { + public TerminalNode CATCH() { return getToken(Java8Parser.CATCH, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public CatchFormalParameterContext catchFormalParameter() { + return getRuleContext(CatchFormalParameterContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final CatchClauseContext catchClause() throws RecognitionException { + CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_catchClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1787); + match(CATCH); + setState(1788); + match(LPAREN); + setState(1789); + catchFormalParameter(); + setState(1790); + match(RPAREN); + setState(1791); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { + CatchFormalParameterContext _localctx = new CatchFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_catchFormalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1796); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1793); + variableModifier(); + } + } + setState(1798); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1799); + catchType(); + setState(1800); + variableDeclaratorId(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchTypeContext extends ParserRuleContext { + public UnannClassTypeContext unannClassType() { + return getRuleContext(UnannClassTypeContext.class,0); + } + public List BITOR() { return getTokens(Java8Parser.BITOR); } + public TerminalNode BITOR(int i) { + return getToken(Java8Parser.BITOR, i); + } + 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; } + } + + public final CatchTypeContext catchType() throws RecognitionException { + CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_catchType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1802); + unannClassType(); + setState(1807); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITOR) { + { + { + setState(1803); + match(BITOR); + setState(1804); + classType(); + } + } + setState(1809); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class Finally_Context extends ParserRuleContext { + public TerminalNode FINALLY() { return getToken(Java8Parser.FINALLY, 0); } + 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_; } + } + + public final Finally_Context finally_() throws RecognitionException { + Finally_Context _localctx = new Finally_Context(_ctx, getState()); + enterRule(_localctx, 340, RULE_finally_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1810); + match(FINALLY); + setState(1811); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryWithResourcesStatementContext extends ParserRuleContext { + public TerminalNode TRY() { return getToken(Java8Parser.TRY, 0); } + 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; } + } + + public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { + TryWithResourcesStatementContext _localctx = new TryWithResourcesStatementContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_tryWithResourcesStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1813); + match(TRY); + setState(1814); + resourceSpecification(); + setState(1815); + block(); + setState(1817); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1816); + catches(); + } + } + + setState(1820); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1819); + finally_(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceSpecificationContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ResourceListContext resourceList() { + return getRuleContext(ResourceListContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resourceSpecification; } + } + + public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { + ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_resourceSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1822); + match(LPAREN); + setState(1823); + resourceList(); + setState(1825); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1824); + match(SEMI); + } + } + + setState(1827); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceListContext extends ParserRuleContext { + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, i); + } + public ResourceListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resourceList; } + } + + public final ResourceListContext resourceList() throws RecognitionException { + ResourceListContext _localctx = new ResourceListContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_resourceList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1829); + resource(); + setState(1834); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,187,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1830); + match(SEMI); + setState(1831); + resource(); + } + } + } + setState(1836); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,187,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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; } + } + + public final ResourceContext resource() throws RecognitionException { + ResourceContext _localctx = new ResourceContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_resource); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1840); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1837); + variableModifier(); + } + } + setState(1842); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1843); + unannType(); + setState(1844); + variableDeclaratorId(); + setState(1845); + match(ASSIGN); + setState(1846); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final PrimaryContext primary() throws RecognitionException { + PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1850); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,189,_ctx) ) { + case 1: + { + setState(1848); + primaryNoNewArray_lfno_primary(); + } + break; + case 2: + { + setState(1849); + arrayCreationExpression(); + } + break; + } + setState(1855); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1852); + primaryNoNewArray_lf_primary(); + } + } + } + setState(1857); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimaryNoNewArrayContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { + PrimaryNoNewArrayContext _localctx = new PrimaryNoNewArrayContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_primaryNoNewArray); + int _la; + try { + setState(1887); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1858); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1859); + typeName(); + setState(1864); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1860); + match(LBRACK); + setState(1861); + match(RBRACK); + } + } + setState(1866); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1867); + match(DOT); + setState(1868); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1870); + match(VOID); + setState(1871); + match(DOT); + setState(1872); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1873); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1874); + typeName(); + setState(1875); + match(DOT); + setState(1876); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1878); + match(LPAREN); + setState(1879); + expression(); + setState(1880); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1882); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1883); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1884); + arrayAccess(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1885); + methodInvocation(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1886); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess() throws RecognitionException { + PrimaryNoNewArray_lf_arrayAccessContext _localctx = new PrimaryNoNewArray_lf_arrayAccessContext(_ctx, getState()); + enterRule(_localctx, 354, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() throws RecognitionException { + PrimaryNoNewArray_lfno_arrayAccessContext _localctx = new PrimaryNoNewArray_lfno_arrayAccessContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_primaryNoNewArray_lfno_arrayAccess); + int _la; + try { + setState(1919); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1891); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1892); + typeName(); + setState(1897); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1893); + match(LBRACK); + setState(1894); + match(RBRACK); + } + } + setState(1899); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1900); + match(DOT); + setState(1901); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1903); + match(VOID); + setState(1904); + match(DOT); + setState(1905); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1906); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1907); + typeName(); + setState(1908); + match(DOT); + setState(1909); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1911); + match(LPAREN); + setState(1912); + expression(); + setState(1913); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1915); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1916); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1917); + methodInvocation(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1918); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary() throws RecognitionException { + PrimaryNoNewArray_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_primaryNoNewArray_lf_primary); + try { + setState(1926); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1921); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1922); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1923); + arrayAccess_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1924); + methodInvocation_lf_primary(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1925); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + 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, 360, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + 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, 362, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); + try { + setState(1934); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1930); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1931); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1932); + methodInvocation_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1933); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() throws RecognitionException { + PrimaryNoNewArray_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_primaryNoNewArray_lfno_primary); + int _la; + try { + setState(1976); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1936); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1937); + typeName(); + setState(1942); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1938); + match(LBRACK); + setState(1939); + match(RBRACK); + } + } + setState(1944); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1945); + match(DOT); + setState(1946); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1948); + unannPrimitiveType(); + setState(1953); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1949); + match(LBRACK); + setState(1950); + match(RBRACK); + } + } + setState(1955); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1956); + match(DOT); + setState(1957); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1959); + match(VOID); + setState(1960); + match(DOT); + setState(1961); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1962); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1963); + typeName(); + setState(1964); + match(DOT); + setState(1965); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1967); + match(LPAREN); + setState(1968); + expression(); + setState(1969); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1971); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1972); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1973); + arrayAccess_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1974); + methodInvocation_lfno_primary(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(1975); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + 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, 366, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + 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, 368, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); + int _la; + try { + setState(2019); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1980); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1981); + typeName(); + setState(1986); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1982); + match(LBRACK); + setState(1983); + match(RBRACK); + } + } + setState(1988); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1989); + match(DOT); + setState(1990); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1992); + unannPrimitiveType(); + setState(1997); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1993); + match(LBRACK); + setState(1994); + match(RBRACK); + } + } + setState(1999); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2000); + match(DOT); + setState(2001); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2003); + match(VOID); + setState(2004); + match(DOT); + setState(2005); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2006); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2007); + typeName(); + setState(2008); + match(DOT); + setState(2009); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2011); + match(LPAREN); + setState(2012); + expression(); + setState(2013); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(2015); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(2016); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(2017); + methodInvocation_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(2018); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpressionContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, 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; } + } + + public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { + ClassInstanceCreationExpressionContext _localctx = new ClassInstanceCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_classInstanceCreationExpression); + int _la; + try { + setState(2104); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2021); + match(NEW); + setState(2023); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2022); + typeArguments(); + } + } + + setState(2028); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2025); + annotation(); + } + } + setState(2030); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2031); + match(Identifier); + setState(2042); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2032); + match(DOT); + setState(2036); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2033); + annotation(); + } + } + setState(2038); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2039); + match(Identifier); + } + } + setState(2044); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2046); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2045); + typeArgumentsOrDiamond(); + } + } + + setState(2048); + match(LPAREN); + setState(2050); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2049); + argumentList(); + } + } + + setState(2052); + match(RPAREN); + setState(2054); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2053); + classBody(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2056); + expressionName(); + setState(2057); + match(DOT); + setState(2058); + match(NEW); + setState(2060); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2059); + typeArguments(); + } + } + + setState(2065); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2062); + annotation(); + } + } + setState(2067); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2068); + match(Identifier); + setState(2070); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2069); + typeArgumentsOrDiamond(); + } + } + + setState(2072); + match(LPAREN); + setState(2074); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2073); + argumentList(); + } + } + + setState(2076); + match(RPAREN); + setState(2078); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2077); + classBody(); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2080); + primary(); + setState(2081); + match(DOT); + setState(2082); + match(NEW); + setState(2084); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2083); + typeArguments(); + } + } + + setState(2089); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2086); + annotation(); + } + } + setState(2091); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2092); + match(Identifier); + setState(2094); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2093); + typeArgumentsOrDiamond(); + } + } + + setState(2096); + match(LPAREN); + setState(2098); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2097); + argumentList(); + } + } + + setState(2100); + match(RPAREN); + setState(2102); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2101); + classBody(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpression_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() throws RecognitionException { + ClassInstanceCreationExpression_lf_primaryContext _localctx = new ClassInstanceCreationExpression_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_classInstanceCreationExpression_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2106); + match(DOT); + setState(2107); + match(NEW); + setState(2109); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2108); + typeArguments(); + } + } + + setState(2114); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2111); + annotation(); + } + } + setState(2116); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2117); + match(Identifier); + setState(2119); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2118); + typeArgumentsOrDiamond(); + } + } + + setState(2121); + match(LPAREN); + setState(2123); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2122); + argumentList(); + } + } + + setState(2125); + match(RPAREN); + setState(2127); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + case 1: + { + setState(2126); + classBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpression_lfno_primaryContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, 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; } + } + + public final ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() throws RecognitionException { + ClassInstanceCreationExpression_lfno_primaryContext _localctx = new ClassInstanceCreationExpression_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_classInstanceCreationExpression_lfno_primary); + int _la; + try { + setState(2188); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEW: + enterOuterAlt(_localctx, 1); + { + setState(2129); + match(NEW); + setState(2131); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2130); + typeArguments(); + } + } + + setState(2136); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2133); + annotation(); + } + } + setState(2138); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2139); + match(Identifier); + setState(2150); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2140); + match(DOT); + setState(2144); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2141); + annotation(); + } + } + setState(2146); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2147); + match(Identifier); + } + } + setState(2152); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2154); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2153); + typeArgumentsOrDiamond(); + } + } + + setState(2156); + match(LPAREN); + setState(2158); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2157); + argumentList(); + } + } + + setState(2160); + match(RPAREN); + setState(2162); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { + case 1: + { + setState(2161); + classBody(); + } + break; + } + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2164); + expressionName(); + setState(2165); + match(DOT); + setState(2166); + match(NEW); + setState(2168); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2167); + typeArguments(); + } + } + + setState(2173); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2170); + annotation(); + } + } + setState(2175); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2176); + match(Identifier); + setState(2178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2177); + typeArgumentsOrDiamond(); + } + } + + setState(2180); + match(LPAREN); + setState(2182); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2181); + argumentList(); + } + } + + setState(2184); + match(RPAREN); + setState(2186); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,237,_ctx) ) { + case 1: + { + setState(2185); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java8Parser.GT, 0); } + public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } + } + + public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { + TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_typeArgumentsOrDiamond); + try { + setState(2193); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2190); + typeArguments(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2191); + match(LT); + setState(2192); + match(GT); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccessContext extends ParserRuleContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 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; } + } + + public final FieldAccessContext fieldAccess() throws RecognitionException { + FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_fieldAccess); + try { + setState(2208); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2195); + primary(); + setState(2196); + match(DOT); + setState(2197); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2199); + match(SUPER); + setState(2200); + match(DOT); + setState(2201); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2202); + typeName(); + setState(2203); + match(DOT); + setState(2204); + match(SUPER); + setState(2205); + match(DOT); + setState(2206); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccess_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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; } + } + + public final FieldAccess_lf_primaryContext fieldAccess_lf_primary() throws RecognitionException { + FieldAccess_lf_primaryContext _localctx = new FieldAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_fieldAccess_lf_primary); + try { + enterOuterAlt(_localctx, 1); + { + setState(2210); + match(DOT); + setState(2211); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccess_lfno_primaryContext extends ParserRuleContext { + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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; } + } + + public final FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() throws RecognitionException { + FieldAccess_lfno_primaryContext _localctx = new FieldAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_fieldAccess_lfno_primary); + try { + setState(2222); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPER: + enterOuterAlt(_localctx, 1); + { + setState(2213); + match(SUPER); + setState(2214); + match(DOT); + setState(2215); + match(Identifier); + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2216); + typeName(); + setState(2217); + match(DOT); + setState(2218); + match(SUPER); + setState(2219); + match(DOT); + setState(2220); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayAccessContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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; } + } + + public final ArrayAccessContext arrayAccess() throws RecognitionException { + ArrayAccessContext _localctx = new ArrayAccessContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_arrayAccess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2234); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { + case 1: + { + setState(2224); + expressionName(); + setState(2225); + match(LBRACK); + setState(2226); + expression(); + setState(2227); + match(RBRACK); + } + break; + case 2: + { + setState(2229); + primaryNoNewArray_lfno_arrayAccess(); + setState(2230); + match(LBRACK); + setState(2231); + expression(); + setState(2232); + match(RBRACK); + } + break; + } + setState(2243); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(2236); + primaryNoNewArray_lf_arrayAccess(); + setState(2237); + match(LBRACK); + setState(2238); + expression(); + setState(2239); + match(RBRACK); + } + } + setState(2245); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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; } + } + + public final ArrayAccess_lf_primaryContext arrayAccess_lf_primary() throws RecognitionException { + ArrayAccess_lf_primaryContext _localctx = new ArrayAccess_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_arrayAccess_lf_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2246); + primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); + setState(2247); + match(LBRACK); + setState(2248); + expression(); + setState(2249); + match(RBRACK); + setState(2257); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,244,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2250); + primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); + setState(2251); + match(LBRACK); + setState(2252); + expression(); + setState(2253); + match(RBRACK); + } + } + } + setState(2259); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,244,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayAccess_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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; } + } + + public final ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() throws RecognitionException { + ArrayAccess_lfno_primaryContext _localctx = new ArrayAccess_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_arrayAccess_lfno_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2270); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + case 1: + { + setState(2260); + expressionName(); + setState(2261); + match(LBRACK); + setState(2262); + expression(); + setState(2263); + match(RBRACK); + } + break; + case 2: + { + setState(2265); + primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); + setState(2266); + match(LBRACK); + setState(2267); + expression(); + setState(2268); + match(RBRACK); + } + break; + } + setState(2279); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,246,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2272); + primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); + setState(2273); + match(LBRACK); + setState(2274); + expression(); + setState(2275); + match(RBRACK); + } + } + } + setState(2281); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,246,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocationContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public MethodInvocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation; } + } + + public final MethodInvocationContext methodInvocation() throws RecognitionException { + MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_methodInvocation); + int _la; + try { + setState(2350); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,258,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2282); + methodName(); + setState(2283); + match(LPAREN); + setState(2285); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2284); + argumentList(); + } + } + + setState(2287); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2289); + typeName(); + setState(2290); + match(DOT); + setState(2292); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2291); + typeArguments(); + } + } + + setState(2294); + match(Identifier); + setState(2295); + match(LPAREN); + setState(2297); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2296); + argumentList(); + } + } + + setState(2299); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2301); + expressionName(); + setState(2302); + match(DOT); + setState(2304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2303); + typeArguments(); + } + } + + setState(2306); + match(Identifier); + setState(2307); + match(LPAREN); + setState(2309); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2308); + argumentList(); + } + } + + setState(2311); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2313); + primary(); + setState(2314); + match(DOT); + setState(2316); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2315); + typeArguments(); + } + } + + setState(2318); + match(Identifier); + setState(2319); + match(LPAREN); + setState(2321); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2320); + argumentList(); + } + } + + setState(2323); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2325); + match(SUPER); + setState(2326); + match(DOT); + setState(2328); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2327); + typeArguments(); + } + } + + setState(2330); + match(Identifier); + setState(2331); + match(LPAREN); + setState(2333); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2332); + argumentList(); + } + } + + setState(2335); + match(RPAREN); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2336); + typeName(); + setState(2337); + match(DOT); + setState(2338); + match(SUPER); + setState(2339); + match(DOT); + setState(2341); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2340); + typeArguments(); + } + } + + setState(2343); + match(Identifier); + setState(2344); + match(LPAREN); + setState(2346); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2345); + argumentList(); + } + } + + setState(2348); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocation_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final MethodInvocation_lf_primaryContext methodInvocation_lf_primary() throws RecognitionException { + MethodInvocation_lf_primaryContext _localctx = new MethodInvocation_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_methodInvocation_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2352); + match(DOT); + setState(2354); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2353); + typeArguments(); + } + } + + setState(2356); + match(Identifier); + setState(2357); + match(LPAREN); + setState(2359); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2358); + argumentList(); + } + } + + setState(2361); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocation_lfno_primaryContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public MethodInvocation_lfno_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation_lfno_primary; } + } + + public final MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() throws RecognitionException { + MethodInvocation_lfno_primaryContext _localctx = new MethodInvocation_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_methodInvocation_lfno_primary); + int _la; + try { + setState(2419); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,270,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2363); + methodName(); + setState(2364); + match(LPAREN); + setState(2366); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2365); + argumentList(); + } + } + + setState(2368); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2370); + typeName(); + setState(2371); + match(DOT); + setState(2373); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2372); + typeArguments(); + } + } + + setState(2375); + match(Identifier); + setState(2376); + match(LPAREN); + setState(2378); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2377); + argumentList(); + } + } + + setState(2380); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2382); + expressionName(); + setState(2383); + match(DOT); + setState(2385); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2384); + typeArguments(); + } + } + + setState(2387); + match(Identifier); + setState(2388); + match(LPAREN); + setState(2390); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2389); + argumentList(); + } + } + + setState(2392); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2394); + match(SUPER); + setState(2395); + match(DOT); + setState(2397); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2396); + typeArguments(); + } + } + + setState(2399); + match(Identifier); + setState(2400); + match(LPAREN); + setState(2402); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2401); + argumentList(); + } + } + + setState(2404); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2405); + typeName(); + setState(2406); + match(DOT); + setState(2407); + match(SUPER); + setState(2408); + match(DOT); + setState(2410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2409); + typeArguments(); + } + } + + setState(2412); + match(Identifier); + setState(2413); + match(LPAREN); + setState(2415); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2414); + argumentList(); + } + } + + setState(2417); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentListContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public ArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argumentList; } + } + + public final ArgumentListContext argumentList() throws RecognitionException { + ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_argumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2421); + expression(); + setState(2426); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2422); + match(COMMA); + setState(2423); + expression(); + } + } + setState(2428); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReferenceContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 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; } + } + + public final MethodReferenceContext methodReference() throws RecognitionException { + MethodReferenceContext _localctx = new MethodReferenceContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_methodReference); + int _la; + try { + setState(2476); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,278,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2429); + expressionName(); + setState(2430); + match(COLONCOLON); + setState(2432); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2431); + typeArguments(); + } + } + + setState(2434); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2436); + referenceType(); + setState(2437); + match(COLONCOLON); + setState(2439); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2438); + typeArguments(); + } + } + + setState(2441); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2443); + primary(); + setState(2444); + match(COLONCOLON); + setState(2446); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2445); + typeArguments(); + } + } + + setState(2448); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2450); + match(SUPER); + setState(2451); + match(COLONCOLON); + setState(2453); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2452); + typeArguments(); + } + } + + setState(2455); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2456); + typeName(); + setState(2457); + match(DOT); + setState(2458); + match(SUPER); + setState(2459); + match(COLONCOLON); + setState(2461); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2460); + typeArguments(); + } + } + + setState(2463); + match(Identifier); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2465); + classType(); + setState(2466); + match(COLONCOLON); + setState(2468); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2467); + typeArguments(); + } + } + + setState(2470); + match(NEW); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2472); + arrayType(); + setState(2473); + match(COLONCOLON); + setState(2474); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReference_lf_primaryContext extends ParserRuleContext { + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 0); } + 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; } + } + + public final MethodReference_lf_primaryContext methodReference_lf_primary() throws RecognitionException { + MethodReference_lf_primaryContext _localctx = new MethodReference_lf_primaryContext(_ctx, getState()); + enterRule(_localctx, 400, RULE_methodReference_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2478); + match(COLONCOLON); + setState(2480); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2479); + typeArguments(); + } + } + + setState(2482); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReference_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 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; } + } + + public final MethodReference_lfno_primaryContext methodReference_lfno_primary() throws RecognitionException { + MethodReference_lfno_primaryContext _localctx = new MethodReference_lfno_primaryContext(_ctx, getState()); + enterRule(_localctx, 402, RULE_methodReference_lfno_primary); + int _la; + try { + setState(2524); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,285,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2484); + expressionName(); + setState(2485); + match(COLONCOLON); + setState(2487); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2486); + typeArguments(); + } + } + + setState(2489); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2491); + referenceType(); + setState(2492); + match(COLONCOLON); + setState(2494); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2493); + typeArguments(); + } + } + + setState(2496); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2498); + match(SUPER); + setState(2499); + match(COLONCOLON); + setState(2501); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2500); + typeArguments(); + } + } + + setState(2503); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2504); + typeName(); + setState(2505); + match(DOT); + setState(2506); + match(SUPER); + setState(2507); + match(COLONCOLON); + setState(2509); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2508); + typeArguments(); + } + } + + setState(2511); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2513); + classType(); + setState(2514); + match(COLONCOLON); + setState(2516); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2515); + typeArguments(); + } + } + + setState(2518); + match(NEW); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2520); + arrayType(); + setState(2521); + match(COLONCOLON); + setState(2522); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayCreationExpressionContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + 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; } + } + + public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { + ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_arrayCreationExpression); + try { + setState(2548); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,288,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2526); + match(NEW); + setState(2527); + primitiveType(); + setState(2528); + dimExprs(); + setState(2530); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,286,_ctx) ) { + case 1: + { + setState(2529); + dims(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2532); + match(NEW); + setState(2533); + classOrInterfaceType(); + setState(2534); + dimExprs(); + setState(2536); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,287,_ctx) ) { + case 1: + { + setState(2535); + dims(); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2538); + match(NEW); + setState(2539); + primitiveType(); + setState(2540); + dims(); + setState(2541); + arrayInitializer(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2543); + match(NEW); + setState(2544); + classOrInterfaceType(); + setState(2545); + dims(); + setState(2546); + arrayInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final DimExprsContext dimExprs() throws RecognitionException { + DimExprsContext _localctx = new DimExprsContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_dimExprs); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2550); + dimExpr(); + setState(2554); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2551); + dimExpr(); + } + } + } + setState(2556); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DimExprContext extends ParserRuleContext { + public TerminalNode LBRACK() { return getToken(Java8Parser.LBRACK, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RBRACK() { return getToken(Java8Parser.RBRACK, 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; } + } + + public final DimExprContext dimExpr() throws RecognitionException { + DimExprContext _localctx = new DimExprContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_dimExpr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2560); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2557); + annotation(); + } + } + setState(2562); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2563); + match(LBRACK); + setState(2564); + expression(); + setState(2565); + match(RBRACK); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ConstantExpressionContext constantExpression() throws RecognitionException { + ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_constantExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2567); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_expression); + try { + setState(2571); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2569); + lambdaExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2570); + assignmentExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaExpressionContext extends ParserRuleContext { + public LambdaParametersContext lambdaParameters() { + return getRuleContext(LambdaParametersContext.class,0); + } + public TerminalNode ARROW() { return getToken(Java8Parser.ARROW, 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; } + } + + public final LambdaExpressionContext lambdaExpression() throws RecognitionException { + LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_lambdaExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2573); + lambdaParameters(); + setState(2574); + match(ARROW); + setState(2575); + lambdaBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaParametersContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public InferredFormalParameterListContext inferredFormalParameterList() { + return getRuleContext(InferredFormalParameterListContext.class,0); + } + public LambdaParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaParameters; } + } + + public final LambdaParametersContext lambdaParameters() throws RecognitionException { + LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_lambdaParameters); + int _la; + try { + setState(2587); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2577); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2578); + match(LPAREN); + setState(2580); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(2579); + formalParameterList(); + } + } + + setState(2582); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2583); + match(LPAREN); + setState(2584); + inferredFormalParameterList(); + setState(2585); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InferredFormalParameterListContext extends ParserRuleContext { + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, i); + } + public InferredFormalParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inferredFormalParameterList; } + } + + public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { + InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_inferredFormalParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2589); + match(Identifier); + setState(2594); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2590); + match(COMMA); + setState(2591); + match(Identifier); + } + } + setState(2596); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final LambdaBodyContext lambdaBody() throws RecognitionException { + LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_lambdaBody); + try { + setState(2599); + _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(2597); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(2598); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { + AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_assignmentExpression); + try { + setState(2603); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2601); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2602); + assignment(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(2605); + leftHandSide(); + setState(2606); + assignmentOperator(); + setState(2607); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final LeftHandSideContext leftHandSide() throws RecognitionException { + LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); + enterRule(_localctx, 426, RULE_leftHandSide); + try { + setState(2612); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2609); + expressionName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2610); + fieldAccess(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2611); + arrayAccess(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssignmentOperatorContext extends ParserRuleContext { + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 0); } + public TerminalNode MUL_ASSIGN() { return getToken(Java8Parser.MUL_ASSIGN, 0); } + public TerminalNode DIV_ASSIGN() { return getToken(Java8Parser.DIV_ASSIGN, 0); } + public TerminalNode MOD_ASSIGN() { return getToken(Java8Parser.MOD_ASSIGN, 0); } + public TerminalNode ADD_ASSIGN() { return getToken(Java8Parser.ADD_ASSIGN, 0); } + public TerminalNode SUB_ASSIGN() { return getToken(Java8Parser.SUB_ASSIGN, 0); } + public TerminalNode LSHIFT_ASSIGN() { return getToken(Java8Parser.LSHIFT_ASSIGN, 0); } + public TerminalNode RSHIFT_ASSIGN() { return getToken(Java8Parser.RSHIFT_ASSIGN, 0); } + public TerminalNode URSHIFT_ASSIGN() { return getToken(Java8Parser.URSHIFT_ASSIGN, 0); } + public TerminalNode AND_ASSIGN() { return getToken(Java8Parser.AND_ASSIGN, 0); } + public TerminalNode XOR_ASSIGN() { return getToken(Java8Parser.XOR_ASSIGN, 0); } + public TerminalNode OR_ASSIGN() { return getToken(Java8Parser.OR_ASSIGN, 0); } + public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignmentOperator; } + } + + public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { + AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_assignmentOperator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2614); + _la = _input.LA(1); + if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & 68685922305L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalExpressionContext extends ParserRuleContext { + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public TerminalNode QUESTION() { return getToken(Java8Parser.QUESTION, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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; } + } + + public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { + ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_conditionalExpression); + try { + setState(2623); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2616); + conditionalOrExpression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2617); + conditionalOrExpression(0); + setState(2618); + match(QUESTION); + setState(2619); + expression(); + setState(2620); + match(COLON); + setState(2621); + conditionalExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalOrExpressionContext extends ParserRuleContext { + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public TerminalNode OR() { return getToken(Java8Parser.OR, 0); } + public ConditionalOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalOrExpression; } + } + + 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 = 432; + enterRecursionRule(_localctx, 432, RULE_conditionalOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2626); + conditionalAndExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2633); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); + setState(2628); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2629); + match(OR); + setState(2630); + conditionalAndExpression(0); + } + } + } + setState(2635); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalAndExpressionContext extends ParserRuleContext { + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public TerminalNode AND() { return getToken(Java8Parser.AND, 0); } + public ConditionalAndExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalAndExpression; } + } + + 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 = 434; + enterRecursionRule(_localctx, 434, RULE_conditionalAndExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2637); + inclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2644); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,300,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); + setState(2639); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2640); + match(AND); + setState(2641); + inclusiveOrExpression(0); + } + } + } + setState(2646); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,300,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InclusiveOrExpressionContext extends ParserRuleContext { + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public TerminalNode BITOR() { return getToken(Java8Parser.BITOR, 0); } + public InclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inclusiveOrExpression; } + } + + 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 = 436; + enterRecursionRule(_localctx, 436, RULE_inclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2648); + exclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2655); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,301,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); + setState(2650); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2651); + match(BITOR); + setState(2652); + exclusiveOrExpression(0); + } + } + } + setState(2657); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,301,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExclusiveOrExpressionContext extends ParserRuleContext { + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public TerminalNode CARET() { return getToken(Java8Parser.CARET, 0); } + public ExclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exclusiveOrExpression; } + } + + 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 = 438; + enterRecursionRule(_localctx, 438, RULE_exclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2659); + andExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2666); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,302,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); + setState(2661); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2662); + match(CARET); + setState(2663); + andExpression(0); + } + } + } + setState(2668); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,302,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AndExpressionContext extends ParserRuleContext { + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public TerminalNode BITAND() { return getToken(Java8Parser.BITAND, 0); } + public AndExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_andExpression; } + } + + 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 = 440; + enterRecursionRule(_localctx, 440, RULE_andExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2670); + equalityExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2677); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,303,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_andExpression); + setState(2672); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2673); + match(BITAND); + setState(2674); + equalityExpression(0); + } + } + } + setState(2679); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,303,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EqualityExpressionContext extends ParserRuleContext { + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public TerminalNode EQUAL() { return getToken(Java8Parser.EQUAL, 0); } + public TerminalNode NOTEQUAL() { return getToken(Java8Parser.NOTEQUAL, 0); } + public EqualityExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_equalityExpression; } + } + + 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 = 442; + enterRecursionRule(_localctx, 442, RULE_equalityExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2681); + relationalExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2691); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2689); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { + case 1: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2683); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2684); + match(EQUAL); + setState(2685); + relationalExpression(0); + } + break; + case 2: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2686); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2687); + match(NOTEQUAL); + setState(2688); + relationalExpression(0); + } + break; + } + } + } + setState(2693); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class RelationalExpressionContext extends ParserRuleContext { + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java8Parser.GT, 0); } + public TerminalNode LE() { return getToken(Java8Parser.LE, 0); } + public TerminalNode GE() { return getToken(Java8Parser.GE, 0); } + public TerminalNode INSTANCEOF() { return getToken(Java8Parser.INSTANCEOF, 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; } + } + + 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 = 444; + enterRecursionRule(_localctx, 444, RULE_relationalExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2695); + shiftExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2714); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2712); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,306,_ctx) ) { + case 1: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2697); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(2698); + match(LT); + setState(2699); + shiftExpression(0); + } + break; + case 2: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2700); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(2701); + match(GT); + setState(2702); + shiftExpression(0); + } + break; + case 3: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2703); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2704); + match(LE); + setState(2705); + shiftExpression(0); + } + break; + case 4: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2706); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2707); + match(GE); + setState(2708); + shiftExpression(0); + } + break; + case 5: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2709); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2710); + match(INSTANCEOF); + setState(2711); + referenceType(); + } + break; + } + } + } + setState(2716); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ShiftExpressionContext extends ParserRuleContext { + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public List LT() { return getTokens(Java8Parser.LT); } + public TerminalNode LT(int i) { + return getToken(Java8Parser.LT, i); + } + public List GT() { return getTokens(Java8Parser.GT); } + public TerminalNode GT(int i) { + return getToken(Java8Parser.GT, i); + } + public ShiftExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shiftExpression; } + } + + 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 = 446; + enterRecursionRule(_localctx, 446, RULE_shiftExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2718); + additiveExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2735); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2733); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) { + case 1: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2720); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2721); + match(LT); + setState(2722); + match(LT); + setState(2723); + additiveExpression(0); + } + break; + case 2: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2724); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2725); + match(GT); + setState(2726); + match(GT); + setState(2727); + additiveExpression(0); + } + break; + case 3: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2728); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2729); + match(GT); + setState(2730); + match(GT); + setState(2731); + match(GT); + setState(2732); + additiveExpression(0); + } + break; + } + } + } + setState(2737); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AdditiveExpressionContext extends ParserRuleContext { + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public TerminalNode ADD() { return getToken(Java8Parser.ADD, 0); } + public TerminalNode SUB() { return getToken(Java8Parser.SUB, 0); } + public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additiveExpression; } + } + + 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 = 448; + enterRecursionRule(_localctx, 448, RULE_additiveExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2739); + multiplicativeExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2749); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2747); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { + case 1: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2741); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2742); + match(ADD); + setState(2743); + multiplicativeExpression(0); + } + break; + case 2: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2744); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2745); + match(SUB); + setState(2746); + multiplicativeExpression(0); + } + break; + } + } + } + setState(2751); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MultiplicativeExpressionContext extends ParserRuleContext { + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode DIV() { return getToken(Java8Parser.DIV, 0); } + public TerminalNode MOD() { return getToken(Java8Parser.MOD, 0); } + public MultiplicativeExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multiplicativeExpression; } + } + + 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 = 450; + enterRecursionRule(_localctx, 450, RULE_multiplicativeExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2753); + unaryExpression(); + } + _ctx.stop = _input.LT(-1); + setState(2766); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2764); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { + case 1: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2755); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2756); + match(MUL); + setState(2757); + unaryExpression(); + } + break; + case 2: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2758); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2759); + match(DIV); + setState(2760); + unaryExpression(); + } + break; + case 3: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2761); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2762); + match(MOD); + setState(2763); + unaryExpression(); + } + break; + } + } + } + setState(2768); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnaryExpressionContext extends ParserRuleContext { + public PreIncrementExpressionContext preIncrementExpression() { + return getRuleContext(PreIncrementExpressionContext.class,0); + } + public PreDecrementExpressionContext preDecrementExpression() { + return getRuleContext(PreDecrementExpressionContext.class,0); + } + public TerminalNode ADD() { return getToken(Java8Parser.ADD, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public TerminalNode SUB() { return getToken(Java8Parser.SUB, 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; } + } + + public final UnaryExpressionContext unaryExpression() throws RecognitionException { + UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); + enterRule(_localctx, 452, RULE_unaryExpression); + try { + setState(2776); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + enterOuterAlt(_localctx, 1); + { + setState(2769); + preIncrementExpression(); + } + break; + case DEC: + enterOuterAlt(_localctx, 2); + { + setState(2770); + preDecrementExpression(); + } + break; + case ADD: + enterOuterAlt(_localctx, 3); + { + setState(2771); + match(ADD); + setState(2772); + unaryExpression(); + } + break; + case SUB: + enterOuterAlt(_localctx, 4); + { + setState(2773); + match(SUB); + setState(2774); + 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(2775); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class PreIncrementExpressionContext extends ParserRuleContext { + public TerminalNode INC() { return getToken(Java8Parser.INC, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public PreIncrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_preIncrementExpression; } + } + + public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { + PreIncrementExpressionContext _localctx = new PreIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 454, RULE_preIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2778); + match(INC); + setState(2779); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PreDecrementExpressionContext extends ParserRuleContext { + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public PreDecrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_preDecrementExpression; } + } + + public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { + PreDecrementExpressionContext _localctx = new PreDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_preDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2781); + match(DEC); + setState(2782); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnaryExpressionNotPlusMinusContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode TILDE() { return getToken(Java8Parser.TILDE, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public TerminalNode BANG() { return getToken(Java8Parser.BANG, 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; } + } + + public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { + UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); + enterRule(_localctx, 458, RULE_unaryExpressionNotPlusMinus); + try { + setState(2790); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2784); + postfixExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2785); + match(TILDE); + setState(2786); + unaryExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2787); + match(BANG); + setState(2788); + unaryExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2789); + castExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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; } + } + + public final PostfixExpressionContext postfixExpression() throws RecognitionException { + PostfixExpressionContext _localctx = new PostfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_postfixExpression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2794); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { + case 1: + { + setState(2792); + primary(); + } + break; + case 2: + { + setState(2793); + expressionName(); + } + break; + } + setState(2800); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(2798); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + { + setState(2796); + postIncrementExpression_lf_postfixExpression(); + } + break; + case DEC: + { + setState(2797); + postDecrementExpression_lf_postfixExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(2802); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostIncrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode INC() { return getToken(Java8Parser.INC, 0); } + public PostIncrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postIncrementExpression; } + } + + public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { + PostIncrementExpressionContext _localctx = new PostIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_postIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2803); + postfixExpression(); + setState(2804); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostIncrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public TerminalNode INC() { return getToken(Java8Parser.INC, 0); } + public PostIncrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postIncrementExpression_lf_postfixExpression; } + } + + public final PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression() throws RecognitionException { + PostIncrementExpression_lf_postfixExpressionContext _localctx = new PostIncrementExpression_lf_postfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 464, RULE_postIncrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2806); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostDecrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 0); } + public PostDecrementExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postDecrementExpression; } + } + + public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { + PostDecrementExpressionContext _localctx = new PostDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 466, RULE_postDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2808); + postfixExpression(); + setState(2809); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostDecrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 0); } + public PostDecrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_postDecrementExpression_lf_postfixExpression; } + } + + public final PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression() throws RecognitionException { + PostDecrementExpression_lf_postfixExpressionContext _localctx = new PostDecrementExpression_lf_postfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 468, RULE_postDecrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2811); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CastExpressionContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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; } + } + + public final CastExpressionContext castExpression() throws RecognitionException { + CastExpressionContext _localctx = new CastExpressionContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_castExpression); + int _la; + try { + setState(2840); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2813); + match(LPAREN); + setState(2814); + primitiveType(); + setState(2815); + match(RPAREN); + setState(2816); + unaryExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2818); + match(LPAREN); + setState(2819); + referenceType(); + setState(2823); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2820); + additionalBound(); + } + } + setState(2825); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2826); + match(RPAREN); + setState(2827); + unaryExpressionNotPlusMinus(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2829); + match(LPAREN); + setState(2830); + referenceType(); + setState(2834); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2831); + additionalBound(); + } + } + setState(2836); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2837); + match(RPAREN); + setState(2838); + 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 25: + return packageName_sempred((PackageNameContext)_localctx, predIndex); + case 27: + return packageOrTypeName_sempred((PackageOrTypeNameContext)_localctx, predIndex); + case 30: + return ambiguousName_sempred((AmbiguousNameContext)_localctx, predIndex); + case 216: + return conditionalOrExpression_sempred((ConditionalOrExpressionContext)_localctx, predIndex); + case 217: + return conditionalAndExpression_sempred((ConditionalAndExpressionContext)_localctx, predIndex); + case 218: + return inclusiveOrExpression_sempred((InclusiveOrExpressionContext)_localctx, predIndex); + case 219: + return exclusiveOrExpression_sempred((ExclusiveOrExpressionContext)_localctx, predIndex); + case 220: + return andExpression_sempred((AndExpressionContext)_localctx, predIndex); + case 221: + return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); + case 222: + return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); + case 223: + return shiftExpression_sempred((ShiftExpressionContext)_localctx, predIndex); + case 224: + return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); + case 225: + 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 String _serializedATNSegment0 = + "\u0004\u0001k\u0b1b\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+ + "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002"+ + "\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007\u0002"+ + "\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b\u0002"+ + "\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007\u000f"+ + "\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007\u0012"+ + "\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007\u0015"+ + "\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007\u0018"+ + "\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007\u001b"+ + "\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007\u001e"+ + "\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007\"\u0002"+ + "#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007\'\u0002"+ + "(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007,\u0002"+ + "-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u00071\u0002"+ + "2\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u00076\u0002"+ + "7\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007;\u0002"+ + "<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007@\u0002"+ + "A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007E\u0002"+ + "F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007J\u0002"+ + "K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007O\u0002"+ + "P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007T\u0002"+ + "U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007Y\u0002"+ + "Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007^\u0002"+ + "_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007c\u0002"+ + "d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007h\u0002"+ + "i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007m\u0002"+ + "n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007r\u0002"+ + "s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007w\u0002"+ + "x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007|\u0002"+ + "}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007\u0080"+ + "\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007\u0083"+ + "\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007\u0086"+ + "\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007\u0089"+ + "\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007\u008c"+ + "\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007\u008f"+ + "\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007\u0092"+ + "\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007\u0095"+ + "\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007\u0098"+ + "\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007\u009b"+ + "\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0002\u009e\u0007\u009e"+ + "\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0\u0002\u00a1\u0007\u00a1"+ + "\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3\u0002\u00a4\u0007\u00a4"+ + "\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6\u0002\u00a7\u0007\u00a7"+ + "\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9\u0002\u00aa\u0007\u00aa"+ + "\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac\u0002\u00ad\u0007\u00ad"+ + "\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af\u0002\u00b0\u0007\u00b0"+ + "\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2\u0002\u00b3\u0007\u00b3"+ + "\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5\u0002\u00b6\u0007\u00b6"+ + "\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8\u0002\u00b9\u0007\u00b9"+ + "\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb\u0002\u00bc\u0007\u00bc"+ + "\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be\u0002\u00bf\u0007\u00bf"+ + "\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1\u0002\u00c2\u0007\u00c2"+ + "\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4\u0002\u00c5\u0007\u00c5"+ + "\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7\u0002\u00c8\u0007\u00c8"+ + "\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca\u0002\u00cb\u0007\u00cb"+ + "\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd\u0002\u00ce\u0007\u00ce"+ + "\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0\u0002\u00d1\u0007\u00d1"+ + "\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3\u0002\u00d4\u0007\u00d4"+ + "\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6\u0002\u00d7\u0007\u00d7"+ + "\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9\u0002\u00da\u0007\u00da"+ + "\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc\u0002\u00dd\u0007\u00dd"+ + "\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df\u0002\u00e0\u0007\u00e0"+ + "\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2\u0002\u00e3\u0007\u00e3"+ + "\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5\u0002\u00e6\u0007\u00e6"+ + "\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8\u0002\u00e9\u0007\u00e9"+ + "\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb\u0001\u0000\u0001\u0000"+ + "\u0001\u0001\u0005\u0001\u01dc\b\u0001\n\u0001\f\u0001\u01df\t\u0001\u0001"+ + "\u0001\u0001\u0001\u0005\u0001\u01e3\b\u0001\n\u0001\f\u0001\u01e6\t\u0001"+ + "\u0001\u0001\u0003\u0001\u01e9\b\u0001\u0001\u0002\u0001\u0002\u0003\u0002"+ + "\u01ed\b\u0002\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0003\u0005\u01f6\b\u0005\u0001\u0006\u0001\u0006"+ + "\u0003\u0006\u01fa\b\u0006\u0001\u0006\u0001\u0006\u0005\u0006\u01fe\b"+ + "\u0006\n\u0006\f\u0006\u0201\t\u0006\u0001\u0007\u0005\u0007\u0204\b\u0007"+ + "\n\u0007\f\u0007\u0207\t\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u020b"+ + "\b\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0005\u0007\u0210\b\u0007"+ + "\n\u0007\f\u0007\u0213\t\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u0217"+ + "\b\u0007\u0003\u0007\u0219\b\u0007\u0001\b\u0001\b\u0005\b\u021d\b\b\n"+ + "\b\f\b\u0220\t\b\u0001\b\u0001\b\u0003\b\u0224\b\b\u0001\t\u0005\t\u0227"+ + "\b\t\n\t\f\t\u022a\t\t\u0001\t\u0001\t\u0003\t\u022e\b\t\u0001\n\u0001"+ + "\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\r\u0005\r\u0237\b\r\n"+ + "\r\f\r\u023a\t\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003"+ + "\u000e\u0247\b\u000e\u0001\u000f\u0005\u000f\u024a\b\u000f\n\u000f\f\u000f"+ + "\u024d\t\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f\u0252\b"+ + "\u000f\n\u000f\f\u000f\u0255\t\u000f\u0001\u000f\u0001\u000f\u0005\u000f"+ + "\u0259\b\u000f\n\u000f\f\u000f\u025c\t\u000f\u0001\u0010\u0005\u0010\u025f"+ + "\b\u0010\n\u0010\f\u0010\u0262\t\u0010\u0001\u0010\u0001\u0010\u0003\u0010"+ + "\u0266\b\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012"+ + "\u0001\u0012\u0001\u0012\u0005\u0012\u026f\b\u0012\n\u0012\f\u0012\u0272"+ + "\t\u0012\u0003\u0012\u0274\b\u0012\u0001\u0013\u0001\u0013\u0001\u0013"+ + "\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0005\u0015\u0280\b\u0015\n\u0015\f\u0015\u0283\t\u0015\u0001"+ + "\u0016\u0001\u0016\u0003\u0016\u0287\b\u0016\u0001\u0017\u0005\u0017\u028a"+ + "\b\u0017\n\u0017\f\u0017\u028d\t\u0017\u0001\u0017\u0001\u0017\u0003\u0017"+ + "\u0291\b\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0003\u0018"+ + "\u0297\b\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0005\u0019\u029f\b\u0019\n\u0019\f\u0019\u02a2\t\u0019\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u02a9"+ + "\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0005\u001b\u02b1\b\u001b\n\u001b\f\u001b\u02b4\t\u001b\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0003\u001c\u02bb\b\u001c"+ + "\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e"+ + "\u0001\u001e\u0001\u001e\u0005\u001e\u02c5\b\u001e\n\u001e\f\u001e\u02c8"+ + "\t\u001e\u0001\u001f\u0003\u001f\u02cb\b\u001f\u0001\u001f\u0005\u001f"+ + "\u02ce\b\u001f\n\u001f\f\u001f\u02d1\t\u001f\u0001\u001f\u0005\u001f\u02d4"+ + "\b\u001f\n\u001f\f\u001f\u02d7\t\u001f\u0001\u001f\u0001\u001f\u0001 "+ + "\u0005 \u02dc\b \n \f \u02df\t \u0001 \u0001 \u0001 \u0001 \u0001!\u0001"+ + "!\u0001\"\u0001\"\u0001\"\u0001\"\u0003\"\u02eb\b\"\u0001#\u0001#\u0001"+ + "#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "&\u0001&\u0001\'\u0001\'\u0001\'\u0003\'\u0308\b\'\u0001(\u0001(\u0003"+ + "(\u030c\b(\u0001)\u0005)\u030f\b)\n)\f)\u0312\t)\u0001)\u0001)\u0001)"+ + "\u0003)\u0317\b)\u0001)\u0003)\u031a\b)\u0001)\u0003)\u031d\b)\u0001)"+ + "\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0003"+ + "*\u0329\b*\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0005,\u0332"+ + "\b,\n,\f,\u0335\t,\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001/\u0001"+ + "/\u0001/\u0005/\u0340\b/\n/\f/\u0343\t/\u00010\u00010\u00050\u0347\b0"+ + "\n0\f0\u034a\t0\u00010\u00010\u00011\u00011\u00011\u00011\u00031\u0352"+ + "\b1\u00012\u00012\u00012\u00012\u00012\u00032\u0359\b2\u00013\u00053\u035c"+ + "\b3\n3\f3\u035f\t3\u00013\u00013\u00013\u00013\u00014\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00014\u00034\u036d\b4\u00015\u00015\u00015\u0005"+ + "5\u0372\b5\n5\f5\u0375\t5\u00016\u00016\u00016\u00036\u037a\b6\u00017"+ + "\u00017\u00037\u037e\b7\u00018\u00018\u00038\u0382\b8\u00019\u00019\u0003"+ + "9\u0386\b9\u0001:\u0001:\u0003:\u038a\b:\u0001;\u0001;\u0001;\u0003;\u038f"+ + "\b;\u0001<\u0001<\u0003<\u0393\b<\u0001<\u0001<\u0005<\u0397\b<\n<\f<"+ + "\u039a\t<\u0001=\u0001=\u0003=\u039e\b=\u0001=\u0001=\u0001=\u0005=\u03a3"+ + "\b=\n=\f=\u03a6\t=\u0001=\u0001=\u0003=\u03aa\b=\u0003=\u03ac\b=\u0001"+ + ">\u0001>\u0005>\u03b0\b>\n>\f>\u03b3\t>\u0001>\u0001>\u0003>\u03b7\b>"+ + "\u0001?\u0001?\u0003?\u03bb\b?\u0001@\u0001@\u0001A\u0001A\u0001B\u0001"+ + "B\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001"+ + "D\u0001D\u0003D\u03ce\bD\u0001E\u0005E\u03d1\bE\nE\fE\u03d4\tE\u0001E"+ + "\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0003F\u03e3\bF\u0001G\u0001G\u0001G\u0003G\u03e8\bG\u0001"+ + "G\u0001G\u0005G\u03ec\bG\nG\fG\u03ef\tG\u0001G\u0001G\u0001G\u0003G\u03f4"+ + "\bG\u0003G\u03f6\bG\u0001H\u0001H\u0003H\u03fa\bH\u0001I\u0001I\u0001"+ + "I\u0003I\u03ff\bI\u0001I\u0001I\u0003I\u0403\bI\u0001J\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0003J\u040b\bJ\u0001K\u0001K\u0001K\u0005K\u0410\bK\n"+ + "K\fK\u0413\tK\u0001K\u0001K\u0001K\u0005K\u0418\bK\nK\fK\u041b\tK\u0003"+ + "K\u041d\bK\u0001L\u0005L\u0420\bL\nL\fL\u0423\tL\u0001L\u0001L\u0001L"+ + "\u0001M\u0001M\u0003M\u042a\bM\u0001N\u0005N\u042d\bN\nN\fN\u0430\tN\u0001"+ + "N\u0001N\u0005N\u0434\bN\nN\fN\u0437\tN\u0001N\u0001N\u0001N\u0001N\u0003"+ + "N\u043d\bN\u0001O\u0005O\u0440\bO\nO\fO\u0443\tO\u0001O\u0001O\u0001O"+ + "\u0003O\u0448\bO\u0001O\u0001O\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001"+ + "Q\u0005Q\u0452\bQ\nQ\fQ\u0455\tQ\u0001R\u0001R\u0003R\u0459\bR\u0001S"+ + "\u0001S\u0003S\u045d\bS\u0001T\u0001T\u0001U\u0001U\u0001U\u0001V\u0005"+ + "V\u0465\bV\nV\fV\u0468\tV\u0001V\u0001V\u0003V\u046c\bV\u0001V\u0001V"+ + "\u0001W\u0001W\u0001W\u0001W\u0003W\u0474\bW\u0001X\u0003X\u0477\bX\u0001"+ + "X\u0001X\u0001X\u0003X\u047c\bX\u0001X\u0001X\u0001Y\u0001Y\u0001Z\u0001"+ + "Z\u0003Z\u0484\bZ\u0001Z\u0003Z\u0487\bZ\u0001Z\u0001Z\u0001[\u0003[\u048c"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u0491\b[\u0001[\u0001[\u0001[\u0003[\u0496"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u049b\b[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0003[\u04a2\b[\u0001[\u0001[\u0001[\u0003[\u04a7\b[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0003[\u04af\b[\u0001[\u0001[\u0001[\u0003[\u04b4"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u04b9\b[\u0001\\\u0005\\\u04bc\b\\\n\\"+ + "\f\\\u04bf\t\\\u0001\\\u0001\\\u0001\\\u0003\\\u04c4\b\\\u0001\\\u0001"+ + "\\\u0001]\u0001]\u0003]\u04ca\b]\u0001]\u0003]\u04cd\b]\u0001]\u0003]"+ + "\u04d0\b]\u0001]\u0001]\u0001^\u0001^\u0001^\u0005^\u04d7\b^\n^\f^\u04da"+ + "\t^\u0001_\u0005_\u04dd\b_\n_\f_\u04e0\t_\u0001_\u0001_\u0001_\u0003_"+ + "\u04e5\b_\u0001_\u0003_\u04e8\b_\u0001_\u0003_\u04eb\b_\u0001`\u0001`"+ + "\u0001a\u0001a\u0005a\u04f1\ba\na\fa\u04f4\ta\u0001b\u0001b\u0003b\u04f8"+ + "\bb\u0001c\u0005c\u04fb\bc\nc\fc\u04fe\tc\u0001c\u0001c\u0001c\u0003c"+ + "\u0503\bc\u0001c\u0003c\u0506\bc\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0003d\u0511\bd\u0001e\u0001e\u0001e\u0001f\u0001"+ + "f\u0005f\u0518\bf\nf\ff\u051b\tf\u0001f\u0001f\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0003g\u0524\bg\u0001h\u0005h\u0527\bh\nh\fh\u052a\th\u0001h"+ + "\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0003i\u0534\bi\u0001"+ + "j\u0005j\u0537\bj\nj\fj\u053a\tj\u0001j\u0001j\u0001j\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0003k\u0545\bk\u0001l\u0005l\u0548\bl\nl\fl\u054b"+ + "\tl\u0001l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0005m\u0554\bm\n"+ + "m\fm\u0557\tm\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001n\u0003n"+ + "\u0560\bn\u0001o\u0005o\u0563\bo\no\fo\u0566\to\u0001o\u0001o\u0001o\u0001"+ + "o\u0001o\u0003o\u056d\bo\u0001o\u0003o\u0570\bo\u0001o\u0001o\u0001p\u0001"+ + "p\u0001p\u0003p\u0577\bp\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0003"+ + "r\u057f\br\u0001s\u0001s\u0001s\u0001s\u0003s\u0585\bs\u0001s\u0001s\u0001"+ + "t\u0001t\u0001t\u0005t\u058c\bt\nt\ft\u058f\tt\u0001u\u0001u\u0001u\u0001"+ + "u\u0001v\u0001v\u0001v\u0003v\u0598\bv\u0001w\u0001w\u0003w\u059c\bw\u0001"+ + "w\u0003w\u059f\bw\u0001w\u0001w\u0001x\u0001x\u0001x\u0005x\u05a6\bx\n"+ + "x\fx\u05a9\tx\u0001y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z"+ + "\u0001z\u0001{\u0001{\u0003{\u05b6\b{\u0001{\u0003{\u05b9\b{\u0001{\u0001"+ + "{\u0001|\u0001|\u0001|\u0005|\u05c0\b|\n|\f|\u05c3\t|\u0001}\u0001}\u0003"+ + "}\u05c7\b}\u0001}\u0001}\u0001~\u0004~\u05cc\b~\u000b~\f~\u05cd\u0001"+ + "\u007f\u0001\u007f\u0001\u007f\u0003\u007f\u05d3\b\u007f\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0081\u0005\u0081\u05d9\b\u0081\n\u0081\f\u0081"+ + "\u05dc\t\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0003\u0082\u05e7\b\u0082"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0003\u0083"+ + "\u05ee\b\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0003\u0084\u05fc\b\u0084\u0001\u0085\u0001\u0085\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0003\u0089"+ + "\u0612\b\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0003\u008d\u0634\b\u008d\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008f"+ + "\u0001\u008f\u0005\u008f\u063e\b\u008f\n\u008f\f\u008f\u0641\t\u008f\u0001"+ + "\u008f\u0005\u008f\u0644\b\u008f\n\u008f\f\u008f\u0647\t\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091"+ + "\u0005\u0091\u0650\b\u0091\n\u0091\f\u0091\u0653\t\u0091\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0003\u0092\u065f\b\u0092\u0001\u0093\u0001"+ + "\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0094\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0003\u0097\u0679"+ + "\b\u0097\u0001\u0098\u0001\u0098\u0003\u0098\u067d\b\u0098\u0001\u0099"+ + "\u0001\u0099\u0001\u0099\u0003\u0099\u0682\b\u0099\u0001\u0099\u0001\u0099"+ + "\u0003\u0099\u0686\b\u0099\u0001\u0099\u0001\u0099\u0003\u0099\u068a\b"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0003\u009a\u0692\b\u009a\u0001\u009a\u0001\u009a\u0003\u009a\u0696"+ + "\b\u009a\u0001\u009a\u0001\u009a\u0003\u009a\u069a\b\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0003\u009b\u06a1\b\u009b"+ + "\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0005\u009d"+ + "\u06a8\b\u009d\n\u009d\f\u009d\u06ab\t\u009d\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0005\u009e\u06b0\b\u009e\n\u009e\f\u009e\u06b3\t\u009e\u0001\u009e"+ + "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0005\u009f\u06bf\b\u009f\n\u009f"+ + "\f\u009f\u06c2\t\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0003\u00a0"+ + "\u06cd\b\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0003\u00a1"+ + "\u06d3\b\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001\u00a2\u0003\u00a2"+ + "\u06d9\b\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0003\u00a5\u06ee\b\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0003\u00a5\u06f3\b\u00a5\u0001\u00a6\u0001\u00a6\u0005\u00a6"+ + "\u06f7\b\u00a6\n\u00a6\f\u00a6\u06fa\t\u00a6\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0005\u00a8\u0703"+ + "\b\u00a8\n\u00a8\f\u00a8\u0706\t\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0005\u00a9\u070e\b\u00a9\n\u00a9"+ + "\f\u00a9\u0711\t\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0003\u00ab\u071a\b\u00ab\u0001\u00ab"+ + "\u0003\u00ab\u071d\b\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0003\u00ac"+ + "\u0722\b\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0005\u00ad\u0729\b\u00ad\n\u00ad\f\u00ad\u072c\t\u00ad\u0001\u00ae\u0005"+ + "\u00ae\u072f\b\u00ae\n\u00ae\f\u00ae\u0732\t\u00ae\u0001\u00ae\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0003\u00af"+ + "\u073b\b\u00af\u0001\u00af\u0005\u00af\u073e\b\u00af\n\u00af\f\u00af\u0741"+ + "\t\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0005\u00b0\u0747"+ + "\b\u00b0\n\u00b0\f\u00b0\u074a\t\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0003\u00b0"+ + "\u0760\b\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0005\u00b2\u0768\b\u00b2\n\u00b2\f\u00b2\u076b\t\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0003\u00b2\u0780\b\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0003\u00b3\u0787\b\u00b3\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0003\u00b5\u078f\b\u00b5\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0005\u00b6\u0795\b\u00b6\n"+ + "\u00b6\f\u00b6\u0798\t\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0005\u00b6\u07a0\b\u00b6\n\u00b6\f\u00b6"+ + "\u07a3\t\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0003\u00b6\u07b9\b\u00b6\u0001\u00b7"+ + "\u0001\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0005\u00b8"+ + "\u07c1\b\u00b8\n\u00b8\f\u00b8\u07c4\t\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0005\u00b8\u07cc\b\u00b8\n"+ + "\u00b8\f\u00b8\u07cf\t\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0003\u00b8\u07e4\b\u00b8\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u07e8\b\u00b9\u0001\u00b9\u0005\u00b9\u07eb"+ + "\b\u00b9\n\u00b9\f\u00b9\u07ee\t\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0005\u00b9\u07f3\b\u00b9\n\u00b9\f\u00b9\u07f6\t\u00b9\u0001\u00b9\u0005"+ + "\u00b9\u07f9\b\u00b9\n\u00b9\f\u00b9\u07fc\t\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u07ff\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u0803\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0807\b\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u080d\b\u00b9\u0001\u00b9\u0005\u00b9\u0810"+ + "\b\u00b9\n\u00b9\f\u00b9\u0813\t\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u0817\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u081b\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u081f\b\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0825\b\u00b9\u0001\u00b9\u0005\u00b9\u0828"+ + "\b\u00b9\n\u00b9\f\u00b9\u082b\t\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u082f\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u0833\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0837\b\u00b9\u0003\u00b9\u0839\b\u00b9"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u083e\b\u00ba\u0001\u00ba"+ + "\u0005\u00ba\u0841\b\u00ba\n\u00ba\f\u00ba\u0844\t\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0003\u00ba\u0848\b\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u084c"+ + "\b\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u0850\b\u00ba\u0001\u00bb"+ + "\u0001\u00bb\u0003\u00bb\u0854\b\u00bb\u0001\u00bb\u0005\u00bb\u0857\b"+ + "\u00bb\n\u00bb\f\u00bb\u085a\t\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0005\u00bb\u085f\b\u00bb\n\u00bb\f\u00bb\u0862\t\u00bb\u0001\u00bb\u0005"+ + "\u00bb\u0865\b\u00bb\n\u00bb\f\u00bb\u0868\t\u00bb\u0001\u00bb\u0003\u00bb"+ + "\u086b\b\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb\u086f\b\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u0873\b\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u0879\b\u00bb\u0001\u00bb\u0005\u00bb\u087c"+ + "\b\u00bb\n\u00bb\f\u00bb\u087f\t\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb"+ + "\u0883\b\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb\u0887\b\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u088b\b\u00bb\u0003\u00bb\u088d\b\u00bb"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0003\u00bc\u0892\b\u00bc\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0003\u00bd\u08a1\b\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0003\u00bf\u08af\b\u00bf\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08bb\b\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0005\u00c0\u08c2\b\u00c0\n\u00c0"+ + "\f\u00c0\u08c5\t\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0005\u00c1"+ + "\u08d0\b\u00c1\n\u00c1\f\u00c1\u08d3\t\u00c1\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0003\u00c2\u08df\b\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0005\u00c2\u08e6\b\u00c2\n\u00c2\f\u00c2"+ + "\u08e9\t\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u08ee\b"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u08f5\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u08fa"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u0901\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u0906"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u090d\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u0912"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u0919\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u091e"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0003\u00c3\u0926\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u092b\b\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u092f\b\u00c3"+ + "\u0001\u00c4\u0001\u00c4\u0003\u00c4\u0933\b\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c4\u0003\u00c4\u0938\b\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u093f\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0946\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u094b\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0952\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0957\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u095e\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0963\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u096b\b\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0970\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0003\u00c5\u0974\b\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ + "\u0005\u00c6\u0979\b\u00c6\n\u00c6\f\u00c6\u097c\t\u00c6\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0003\u00c7\u0981\b\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u0988\b\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u098f\b\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u0996"+ + "\b\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0003\u00c7\u099e\b\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0003\u00c7\u09a5\b\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u09ad\b\u00c7\u0001"+ + "\u00c8\u0001\u00c8\u0003\u00c8\u09b1\b\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09b8\b\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09bf\b\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09c6"+ + "\b\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0003\u00c9\u09ce\b\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0003\u00c9\u09d5\b\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09dd\b\u00c9\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09e3\b\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09e9\b\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09f5\b\u00ca\u0001"+ + "\u00cb\u0001\u00cb\u0005\u00cb\u09f9\b\u00cb\n\u00cb\f\u00cb\u09fc\t\u00cb"+ + "\u0001\u00cc\u0005\u00cc\u09ff\b\u00cc\n\u00cc\f\u00cc\u0a02\t\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00ce\u0001\u00ce\u0003\u00ce\u0a0c\b\u00ce\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0003\u00d0\u0a15"+ + "\b\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0003"+ + "\u00d0\u0a1c\b\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0005\u00d1\u0a21"+ + "\b\u00d1\n\u00d1\f\u00d1\u0a24\t\u00d1\u0001\u00d2\u0001\u00d2\u0003\u00d2"+ + "\u0a28\b\u00d2\u0001\u00d3\u0001\u00d3\u0003\u00d3\u0a2c\b\u00d3\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0003\u00d5\u0a35\b\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0003"+ + "\u00d7\u0a40\b\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0005\u00d8\u0a48\b\u00d8\n\u00d8\f\u00d8\u0a4b\t\u00d8"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0005\u00d9\u0a53\b\u00d9\n\u00d9\f\u00d9\u0a56\t\u00d9\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0005\u00da\u0a5e"+ + "\b\u00da\n\u00da\f\u00da\u0a61\t\u00da\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0005\u00db\u0a69\b\u00db\n\u00db"+ + "\f\u00db\u0a6c\t\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0005\u00dc\u0a74\b\u00dc\n\u00dc\f\u00dc\u0a77"+ + "\t\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0005\u00dd\u0a82\b\u00dd\n"+ + "\u00dd\f\u00dd\u0a85\t\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0005\u00de\u0a99\b\u00de\n\u00de\f\u00de"+ + "\u0a9c\t\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0005\u00df"+ + "\u0aae\b\u00df\n\u00df\f\u00df\u0ab1\t\u00df\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0005\u00e0\u0abc\b\u00e0\n\u00e0\f\u00e0\u0abf\t\u00e0\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0005\u00e1"+ + "\u0acd\b\u00e1\n\u00e1\f\u00e1\u0ad0\t\u00e1\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0003\u00e2\u0ad9"+ + "\b\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0003\u00e5\u0ae7\b\u00e5\u0001\u00e6\u0001\u00e6\u0003\u00e6\u0aeb"+ + "\b\u00e6\u0001\u00e6\u0001\u00e6\u0005\u00e6\u0aef\b\u00e6\n\u00e6\f\u00e6"+ + "\u0af2\t\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0005\u00eb\u0b06\b\u00eb\n\u00eb\f\u00eb\u0b09\t\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0005"+ + "\u00eb\u0b11\b\u00eb\n\u00eb\f\u00eb\u0b14\t\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0003\u00eb\u0b19\b\u00eb\u0001\u00eb\u0000\r26<\u01b0\u01b2"+ + "\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u00ec\u0000\u0002\u0004"+ + "\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \""+ + "$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086"+ + "\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e"+ + "\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6"+ + "\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce"+ + "\u00d0\u00d2\u00d4\u00d6\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"+ + "\u0000\u0004\u0001\u000038\u0005\u0000\u0005\u0005\b\b\u001b\u001b\u001d"+ + "\u001d%%\u0002\u0000\u000e\u000e\u0014\u0014\u0002\u0000BB[e\u0c0c\u0000"+ + "\u01d8\u0001\u0000\u0000\u0000\u0002\u01e8\u0001\u0000\u0000\u0000\u0004"+ + "\u01ec\u0001\u0000\u0000\u0000\u0006\u01ee\u0001\u0000\u0000\u0000\b\u01f0"+ + "\u0001\u0000\u0000\u0000\n\u01f5\u0001\u0000\u0000\u0000\f\u01f9\u0001"+ + "\u0000\u0000\u0000\u000e\u0218\u0001\u0000\u0000\u0000\u0010\u021a\u0001"+ + "\u0000\u0000\u0000\u0012\u0228\u0001\u0000\u0000\u0000\u0014\u022f\u0001"+ + "\u0000\u0000\u0000\u0016\u0231\u0001\u0000\u0000\u0000\u0018\u0233\u0001"+ + "\u0000\u0000\u0000\u001a\u0238\u0001\u0000\u0000\u0000\u001c\u0246\u0001"+ + "\u0000\u0000\u0000\u001e\u024b\u0001\u0000\u0000\u0000 \u0260\u0001\u0000"+ + "\u0000\u0000\"\u0267\u0001\u0000\u0000\u0000$\u0273\u0001\u0000\u0000"+ + "\u0000&\u0275\u0001\u0000\u0000\u0000(\u0278\u0001\u0000\u0000\u0000*"+ + "\u027c\u0001\u0000\u0000\u0000,\u0286\u0001\u0000\u0000\u0000.\u028b\u0001"+ + "\u0000\u0000\u00000\u0296\u0001\u0000\u0000\u00002\u0298\u0001\u0000\u0000"+ + "\u00004\u02a8\u0001\u0000\u0000\u00006\u02aa\u0001\u0000\u0000\u00008"+ + "\u02ba\u0001\u0000\u0000\u0000:\u02bc\u0001\u0000\u0000\u0000<\u02be\u0001"+ + "\u0000\u0000\u0000>\u02ca\u0001\u0000\u0000\u0000@\u02dd\u0001\u0000\u0000"+ + "\u0000B\u02e4\u0001\u0000\u0000\u0000D\u02ea\u0001\u0000\u0000\u0000F"+ + "\u02ec\u0001\u0000\u0000\u0000H\u02f0\u0001\u0000\u0000\u0000J\u02f6\u0001"+ + "\u0000\u0000\u0000L\u02fd\u0001\u0000\u0000\u0000N\u0307\u0001\u0000\u0000"+ + "\u0000P\u030b\u0001\u0000\u0000\u0000R\u0310\u0001\u0000\u0000\u0000T"+ + "\u0328\u0001\u0000\u0000\u0000V\u032a\u0001\u0000\u0000\u0000X\u032e\u0001"+ + "\u0000\u0000\u0000Z\u0336\u0001\u0000\u0000\u0000\\\u0339\u0001\u0000"+ + "\u0000\u0000^\u033c\u0001\u0000\u0000\u0000`\u0344\u0001\u0000\u0000\u0000"+ + "b\u0351\u0001\u0000\u0000\u0000d\u0358\u0001\u0000\u0000\u0000f\u035d"+ + "\u0001\u0000\u0000\u0000h\u036c\u0001\u0000\u0000\u0000j\u036e\u0001\u0000"+ + "\u0000\u0000l\u0376\u0001\u0000\u0000\u0000n\u037b\u0001\u0000\u0000\u0000"+ + "p\u0381\u0001\u0000\u0000\u0000r\u0385\u0001\u0000\u0000\u0000t\u0389"+ + "\u0001\u0000\u0000\u0000v\u038e\u0001\u0000\u0000\u0000x\u0392\u0001\u0000"+ + "\u0000\u0000z\u03ab\u0001\u0000\u0000\u0000|\u03ad\u0001\u0000\u0000\u0000"+ + "~\u03b8\u0001\u0000\u0000\u0000\u0080\u03bc\u0001\u0000\u0000\u0000\u0082"+ + "\u03be\u0001\u0000\u0000\u0000\u0084\u03c0\u0001\u0000\u0000\u0000\u0086"+ + "\u03c2\u0001\u0000\u0000\u0000\u0088\u03cd\u0001\u0000\u0000\u0000\u008a"+ + "\u03d2\u0001\u0000\u0000\u0000\u008c\u03e2\u0001\u0000\u0000\u0000\u008e"+ + "\u03f5\u0001\u0000\u0000\u0000\u0090\u03f9\u0001\u0000\u0000\u0000\u0092"+ + "\u03fb\u0001\u0000\u0000\u0000\u0094\u040a\u0001\u0000\u0000\u0000\u0096"+ + "\u041c\u0001\u0000\u0000\u0000\u0098\u0421\u0001\u0000\u0000\u0000\u009a"+ + "\u0429\u0001\u0000\u0000\u0000\u009c\u043c\u0001\u0000\u0000\u0000\u009e"+ + "\u0441\u0001\u0000\u0000\u0000\u00a0\u044b\u0001\u0000\u0000\u0000\u00a2"+ + "\u044e\u0001\u0000\u0000\u0000\u00a4\u0458\u0001\u0000\u0000\u0000\u00a6"+ + "\u045c\u0001\u0000\u0000\u0000\u00a8\u045e\u0001\u0000\u0000\u0000\u00aa"+ + "\u0460\u0001\u0000\u0000\u0000\u00ac\u0466\u0001\u0000\u0000\u0000\u00ae"+ + "\u0473\u0001\u0000\u0000\u0000\u00b0\u0476\u0001\u0000\u0000\u0000\u00b2"+ + "\u047f\u0001\u0000\u0000\u0000\u00b4\u0481\u0001\u0000\u0000\u0000\u00b6"+ + "\u04b8\u0001\u0000\u0000\u0000\u00b8\u04bd\u0001\u0000\u0000\u0000\u00ba"+ + "\u04c7\u0001\u0000\u0000\u0000\u00bc\u04d3\u0001\u0000\u0000\u0000\u00be"+ + "\u04de\u0001\u0000\u0000\u0000\u00c0\u04ec\u0001\u0000\u0000\u0000\u00c2"+ + "\u04ee\u0001\u0000\u0000\u0000\u00c4\u04f7\u0001\u0000\u0000\u0000\u00c6"+ + "\u04fc\u0001\u0000\u0000\u0000\u00c8\u0510\u0001\u0000\u0000\u0000\u00ca"+ + "\u0512\u0001\u0000\u0000\u0000\u00cc\u0515\u0001\u0000\u0000\u0000\u00ce"+ + "\u0523\u0001\u0000\u0000\u0000\u00d0\u0528\u0001\u0000\u0000\u0000\u00d2"+ + "\u0533\u0001\u0000\u0000\u0000\u00d4\u0538\u0001\u0000\u0000\u0000\u00d6"+ + "\u0544\u0001\u0000\u0000\u0000\u00d8\u0549\u0001\u0000\u0000\u0000\u00da"+ + "\u0551\u0001\u0000\u0000\u0000\u00dc\u055f\u0001\u0000\u0000\u0000\u00de"+ + "\u0564\u0001\u0000\u0000\u0000\u00e0\u0576\u0001\u0000\u0000\u0000\u00e2"+ + "\u0578\u0001\u0000\u0000\u0000\u00e4\u057e\u0001\u0000\u0000\u0000\u00e6"+ + "\u0580\u0001\u0000\u0000\u0000\u00e8\u0588\u0001\u0000\u0000\u0000\u00ea"+ + "\u0590\u0001\u0000\u0000\u0000\u00ec\u0597\u0001\u0000\u0000\u0000\u00ee"+ + "\u0599\u0001\u0000\u0000\u0000\u00f0\u05a2\u0001\u0000\u0000\u0000\u00f2"+ + "\u05aa\u0001\u0000\u0000\u0000\u00f4\u05ad\u0001\u0000\u0000\u0000\u00f6"+ + "\u05b3\u0001\u0000\u0000\u0000\u00f8\u05bc\u0001\u0000\u0000\u0000\u00fa"+ + "\u05c4\u0001\u0000\u0000\u0000\u00fc\u05cb\u0001\u0000\u0000\u0000\u00fe"+ + "\u05d2\u0001\u0000\u0000\u0000\u0100\u05d4\u0001\u0000\u0000\u0000\u0102"+ + "\u05da\u0001\u0000\u0000\u0000\u0104\u05e6\u0001\u0000\u0000\u0000\u0106"+ + "\u05ed\u0001\u0000\u0000\u0000\u0108\u05fb\u0001\u0000\u0000\u0000\u010a"+ + "\u05fd\u0001\u0000\u0000\u0000\u010c\u05ff\u0001\u0000\u0000\u0000\u010e"+ + "\u0603\u0001\u0000\u0000\u0000\u0110\u0607\u0001\u0000\u0000\u0000\u0112"+ + "\u0611\u0001\u0000\u0000\u0000\u0114\u0613\u0001\u0000\u0000\u0000\u0116"+ + "\u0619\u0001\u0000\u0000\u0000\u0118\u0621\u0001\u0000\u0000\u0000\u011a"+ + "\u0633\u0001\u0000\u0000\u0000\u011c\u0635\u0001\u0000\u0000\u0000\u011e"+ + "\u063b\u0001\u0000\u0000\u0000\u0120\u064a\u0001\u0000\u0000\u0000\u0122"+ + "\u064d\u0001\u0000\u0000\u0000\u0124\u065e\u0001\u0000\u0000\u0000\u0126"+ + "\u0660\u0001\u0000\u0000\u0000\u0128\u0662\u0001\u0000\u0000\u0000\u012a"+ + "\u0668\u0001\u0000\u0000\u0000\u012c\u066e\u0001\u0000\u0000\u0000\u012e"+ + "\u0678\u0001\u0000\u0000\u0000\u0130\u067c\u0001\u0000\u0000\u0000\u0132"+ + "\u067e\u0001\u0000\u0000\u0000\u0134\u068e\u0001\u0000\u0000\u0000\u0136"+ + "\u06a0\u0001\u0000\u0000\u0000\u0138\u06a2\u0001\u0000\u0000\u0000\u013a"+ + "\u06a4\u0001\u0000\u0000\u0000\u013c\u06ac\u0001\u0000\u0000\u0000\u013e"+ + "\u06bb\u0001\u0000\u0000\u0000\u0140\u06ca\u0001\u0000\u0000\u0000\u0142"+ + "\u06d0\u0001\u0000\u0000\u0000\u0144\u06d6\u0001\u0000\u0000\u0000\u0146"+ + "\u06dc\u0001\u0000\u0000\u0000\u0148\u06e0\u0001\u0000\u0000\u0000\u014a"+ + "\u06f2\u0001\u0000\u0000\u0000\u014c\u06f4\u0001\u0000\u0000\u0000\u014e"+ + "\u06fb\u0001\u0000\u0000\u0000\u0150\u0704\u0001\u0000\u0000\u0000\u0152"+ + "\u070a\u0001\u0000\u0000\u0000\u0154\u0712\u0001\u0000\u0000\u0000\u0156"+ + "\u0715\u0001\u0000\u0000\u0000\u0158\u071e\u0001\u0000\u0000\u0000\u015a"+ + "\u0725\u0001\u0000\u0000\u0000\u015c\u0730\u0001\u0000\u0000\u0000\u015e"+ + "\u073a\u0001\u0000\u0000\u0000\u0160\u075f\u0001\u0000\u0000\u0000\u0162"+ + "\u0761\u0001\u0000\u0000\u0000\u0164\u077f\u0001\u0000\u0000\u0000\u0166"+ + "\u0786\u0001\u0000\u0000\u0000\u0168\u0788\u0001\u0000\u0000\u0000\u016a"+ + "\u078e\u0001\u0000\u0000\u0000\u016c\u07b8\u0001\u0000\u0000\u0000\u016e"+ + "\u07ba\u0001\u0000\u0000\u0000\u0170\u07e3\u0001\u0000\u0000\u0000\u0172"+ + "\u0838\u0001\u0000\u0000\u0000\u0174\u083a\u0001\u0000\u0000\u0000\u0176"+ + "\u088c\u0001\u0000\u0000\u0000\u0178\u0891\u0001\u0000\u0000\u0000\u017a"+ + "\u08a0\u0001\u0000\u0000\u0000\u017c\u08a2\u0001\u0000\u0000\u0000\u017e"+ + "\u08ae\u0001\u0000\u0000\u0000\u0180\u08ba\u0001\u0000\u0000\u0000\u0182"+ + "\u08c6\u0001\u0000\u0000\u0000\u0184\u08de\u0001\u0000\u0000\u0000\u0186"+ + "\u092e\u0001\u0000\u0000\u0000\u0188\u0930\u0001\u0000\u0000\u0000\u018a"+ + "\u0973\u0001\u0000\u0000\u0000\u018c\u0975\u0001\u0000\u0000\u0000\u018e"+ + "\u09ac\u0001\u0000\u0000\u0000\u0190\u09ae\u0001\u0000\u0000\u0000\u0192"+ + "\u09dc\u0001\u0000\u0000\u0000\u0194\u09f4\u0001\u0000\u0000\u0000\u0196"+ + "\u09f6\u0001\u0000\u0000\u0000\u0198\u0a00\u0001\u0000\u0000\u0000\u019a"+ + "\u0a07\u0001\u0000\u0000\u0000\u019c\u0a0b\u0001\u0000\u0000\u0000\u019e"+ + "\u0a0d\u0001\u0000\u0000\u0000\u01a0\u0a1b\u0001\u0000\u0000\u0000\u01a2"+ + "\u0a1d\u0001\u0000\u0000\u0000\u01a4\u0a27\u0001\u0000\u0000\u0000\u01a6"+ + "\u0a2b\u0001\u0000\u0000\u0000\u01a8\u0a2d\u0001\u0000\u0000\u0000\u01aa"+ + "\u0a34\u0001\u0000\u0000\u0000\u01ac\u0a36\u0001\u0000\u0000\u0000\u01ae"+ + "\u0a3f\u0001\u0000\u0000\u0000\u01b0\u0a41\u0001\u0000\u0000\u0000\u01b2"+ + "\u0a4c\u0001\u0000\u0000\u0000\u01b4\u0a57\u0001\u0000\u0000\u0000\u01b6"+ + "\u0a62\u0001\u0000\u0000\u0000\u01b8\u0a6d\u0001\u0000\u0000\u0000\u01ba"+ + "\u0a78\u0001\u0000\u0000\u0000\u01bc\u0a86\u0001\u0000\u0000\u0000\u01be"+ + "\u0a9d\u0001\u0000\u0000\u0000\u01c0\u0ab2\u0001\u0000\u0000\u0000\u01c2"+ + "\u0ac0\u0001\u0000\u0000\u0000\u01c4\u0ad8\u0001\u0000\u0000\u0000\u01c6"+ + "\u0ada\u0001\u0000\u0000\u0000\u01c8\u0add\u0001\u0000\u0000\u0000\u01ca"+ + "\u0ae6\u0001\u0000\u0000\u0000\u01cc\u0aea\u0001\u0000\u0000\u0000\u01ce"+ + "\u0af3\u0001\u0000\u0000\u0000\u01d0\u0af6\u0001\u0000\u0000\u0000\u01d2"+ + "\u0af8\u0001\u0000\u0000\u0000\u01d4\u0afb\u0001\u0000\u0000\u0000\u01d6"+ + "\u0b18\u0001\u0000\u0000\u0000\u01d8\u01d9\u0007\u0000\u0000\u0000\u01d9"+ + "\u0001\u0001\u0000\u0000\u0000\u01da\u01dc\u0003\u00e4r\u0000\u01db\u01da"+ + "\u0001\u0000\u0000\u0000\u01dc\u01df\u0001\u0000\u0000\u0000\u01dd\u01db"+ + "\u0001\u0000\u0000\u0000\u01dd\u01de\u0001\u0000\u0000\u0000\u01de\u01e0"+ + "\u0001\u0000\u0000\u0000\u01df\u01dd\u0001\u0000\u0000\u0000\u01e0\u01e9"+ + "\u0003\u0004\u0002\u0000\u01e1\u01e3\u0003\u00e4r\u0000\u01e2\u01e1\u0001"+ + "\u0000\u0000\u0000\u01e3\u01e6\u0001\u0000\u0000\u0000\u01e4\u01e2\u0001"+ + "\u0000\u0000\u0000\u01e4\u01e5\u0001\u0000\u0000\u0000\u01e5\u01e7\u0001"+ + "\u0000\u0000\u0000\u01e6\u01e4\u0001\u0000\u0000\u0000\u01e7\u01e9\u0005"+ + "\u0003\u0000\u0000\u01e8\u01dd\u0001\u0000\u0000\u0000\u01e8\u01e4\u0001"+ + "\u0000\u0000\u0000\u01e9\u0003\u0001\u0000\u0000\u0000\u01ea\u01ed\u0003"+ + "\u0006\u0003\u0000\u01eb\u01ed\u0003\b\u0004\u0000\u01ec\u01ea\u0001\u0000"+ + "\u0000\u0000\u01ec\u01eb\u0001\u0000\u0000\u0000\u01ed\u0005\u0001\u0000"+ + "\u0000\u0000\u01ee\u01ef\u0007\u0001\u0000\u0000\u01ef\u0007\u0001\u0000"+ + "\u0000\u0000\u01f0\u01f1\u0007\u0002\u0000\u0000\u01f1\t\u0001\u0000\u0000"+ + "\u0000\u01f2\u01f6\u0003\f\u0006\u0000\u01f3\u01f6\u0003\u001a\r\u0000"+ + "\u01f4\u01f6\u0003\u001c\u000e\u0000\u01f5\u01f2\u0001\u0000\u0000\u0000"+ + "\u01f5\u01f3\u0001\u0000\u0000\u0000\u01f5\u01f4\u0001\u0000\u0000\u0000"+ + "\u01f6\u000b\u0001\u0000\u0000\u0000\u01f7\u01fa\u0003\u0012\t\u0000\u01f8"+ + "\u01fa\u0003\u0018\f\u0000\u01f9\u01f7\u0001\u0000\u0000\u0000\u01f9\u01f8"+ + "\u0001\u0000\u0000\u0000\u01fa\u01ff\u0001\u0000\u0000\u0000\u01fb\u01fe"+ + "\u0003\u0010\b\u0000\u01fc\u01fe\u0003\u0016\u000b\u0000\u01fd\u01fb\u0001"+ + "\u0000\u0000\u0000\u01fd\u01fc\u0001\u0000\u0000\u0000\u01fe\u0201\u0001"+ + "\u0000\u0000\u0000\u01ff\u01fd\u0001\u0000\u0000\u0000\u01ff\u0200\u0001"+ + "\u0000\u0000\u0000\u0200\r\u0001\u0000\u0000\u0000\u0201\u01ff\u0001\u0000"+ + "\u0000\u0000\u0202\u0204\u0003\u00e4r\u0000\u0203\u0202\u0001\u0000\u0000"+ + "\u0000\u0204\u0207\u0001\u0000\u0000\u0000\u0205\u0203\u0001\u0000\u0000"+ + "\u0000\u0205\u0206\u0001\u0000\u0000\u0000\u0206\u0208\u0001\u0000\u0000"+ + "\u0000\u0207\u0205\u0001\u0000\u0000\u0000\u0208\u020a\u0005f\u0000\u0000"+ + "\u0209\u020b\u0003(\u0014\u0000\u020a\u0209\u0001\u0000\u0000\u0000\u020a"+ + "\u020b\u0001\u0000\u0000\u0000\u020b\u0219\u0001\u0000\u0000\u0000\u020c"+ + "\u020d\u0003\f\u0006\u0000\u020d\u0211\u0005A\u0000\u0000\u020e\u0210"+ + "\u0003\u00e4r\u0000\u020f\u020e\u0001\u0000\u0000\u0000\u0210\u0213\u0001"+ + "\u0000\u0000\u0000\u0211\u020f\u0001\u0000\u0000\u0000\u0211\u0212\u0001"+ + "\u0000\u0000\u0000\u0212\u0214\u0001\u0000\u0000\u0000\u0213\u0211\u0001"+ + "\u0000\u0000\u0000\u0214\u0216\u0005f\u0000\u0000\u0215\u0217\u0003(\u0014"+ + "\u0000\u0216\u0215\u0001\u0000\u0000\u0000\u0216\u0217\u0001\u0000\u0000"+ + "\u0000\u0217\u0219\u0001\u0000\u0000\u0000\u0218\u0205\u0001\u0000\u0000"+ + "\u0000\u0218\u020c\u0001\u0000\u0000\u0000\u0219\u000f\u0001\u0000\u0000"+ + "\u0000\u021a\u021e\u0005A\u0000\u0000\u021b\u021d\u0003\u00e4r\u0000\u021c"+ + "\u021b\u0001\u0000\u0000\u0000\u021d\u0220\u0001\u0000\u0000\u0000\u021e"+ + "\u021c\u0001\u0000\u0000\u0000\u021e\u021f\u0001\u0000\u0000\u0000\u021f"+ + "\u0221\u0001\u0000\u0000\u0000\u0220\u021e\u0001\u0000\u0000\u0000\u0221"+ + "\u0223\u0005f\u0000\u0000\u0222\u0224\u0003(\u0014\u0000\u0223\u0222\u0001"+ + "\u0000\u0000\u0000\u0223\u0224\u0001\u0000\u0000\u0000\u0224\u0011\u0001"+ + "\u0000\u0000\u0000\u0225\u0227\u0003\u00e4r\u0000\u0226\u0225\u0001\u0000"+ + "\u0000\u0000\u0227\u022a\u0001\u0000\u0000\u0000\u0228\u0226\u0001\u0000"+ + "\u0000\u0000\u0228\u0229\u0001\u0000\u0000\u0000\u0229\u022b\u0001\u0000"+ + "\u0000\u0000\u022a\u0228\u0001\u0000\u0000\u0000\u022b\u022d\u0005f\u0000"+ + "\u0000\u022c\u022e\u0003(\u0014\u0000\u022d\u022c\u0001\u0000\u0000\u0000"+ + "\u022d\u022e\u0001\u0000\u0000\u0000\u022e\u0013\u0001\u0000\u0000\u0000"+ + "\u022f\u0230\u0003\u000e\u0007\u0000\u0230\u0015\u0001\u0000\u0000\u0000"+ + "\u0231\u0232\u0003\u0010\b\u0000\u0232\u0017\u0001\u0000\u0000\u0000\u0233"+ + "\u0234\u0003\u0012\t\u0000\u0234\u0019\u0001\u0000\u0000\u0000\u0235\u0237"+ + "\u0003\u00e4r\u0000\u0236\u0235\u0001\u0000\u0000\u0000\u0237\u023a\u0001"+ + "\u0000\u0000\u0000\u0238\u0236\u0001\u0000\u0000\u0000\u0238\u0239\u0001"+ + "\u0000\u0000\u0000\u0239\u023b\u0001\u0000\u0000\u0000\u023a\u0238\u0001"+ + "\u0000\u0000\u0000\u023b\u023c\u0005f\u0000\u0000\u023c\u001b\u0001\u0000"+ + "\u0000\u0000\u023d\u023e\u0003\u0002\u0001\u0000\u023e\u023f\u0003\u001e"+ + "\u000f\u0000\u023f\u0247\u0001\u0000\u0000\u0000\u0240\u0241\u0003\f\u0006"+ + "\u0000\u0241\u0242\u0003\u001e\u000f\u0000\u0242\u0247\u0001\u0000\u0000"+ + "\u0000\u0243\u0244\u0003\u001a\r\u0000\u0244\u0245\u0003\u001e\u000f\u0000"+ + "\u0245\u0247\u0001\u0000\u0000\u0000\u0246\u023d\u0001\u0000\u0000\u0000"+ + "\u0246\u0240\u0001\u0000\u0000\u0000\u0246\u0243\u0001\u0000\u0000\u0000"+ + "\u0247\u001d\u0001\u0000\u0000\u0000\u0248\u024a\u0003\u00e4r\u0000\u0249"+ + "\u0248\u0001\u0000\u0000\u0000\u024a\u024d\u0001\u0000\u0000\u0000\u024b"+ + "\u0249\u0001\u0000\u0000\u0000\u024b\u024c\u0001\u0000\u0000\u0000\u024c"+ + "\u024e\u0001\u0000\u0000\u0000\u024d\u024b\u0001\u0000\u0000\u0000\u024e"+ + "\u024f\u0005=\u0000\u0000\u024f\u025a\u0005>\u0000\u0000\u0250\u0252\u0003"+ + "\u00e4r\u0000\u0251\u0250\u0001\u0000\u0000\u0000\u0252\u0255\u0001\u0000"+ + "\u0000\u0000\u0253\u0251\u0001\u0000\u0000\u0000\u0253\u0254\u0001\u0000"+ + "\u0000\u0000\u0254\u0256\u0001\u0000\u0000\u0000\u0255\u0253\u0001\u0000"+ + "\u0000\u0000\u0256\u0257\u0005=\u0000\u0000\u0257\u0259\u0005>\u0000\u0000"+ + "\u0258\u0253\u0001\u0000\u0000\u0000\u0259\u025c\u0001\u0000\u0000\u0000"+ + "\u025a\u0258\u0001\u0000\u0000\u0000\u025a\u025b\u0001\u0000\u0000\u0000"+ + "\u025b\u001f\u0001\u0000\u0000\u0000\u025c\u025a\u0001\u0000\u0000\u0000"+ + "\u025d\u025f\u0003\"\u0011\u0000\u025e\u025d\u0001\u0000\u0000\u0000\u025f"+ + "\u0262\u0001\u0000\u0000\u0000\u0260\u025e\u0001\u0000\u0000\u0000\u0260"+ + "\u0261\u0001\u0000\u0000\u0000\u0261\u0263\u0001\u0000\u0000\u0000\u0262"+ + "\u0260\u0001\u0000\u0000\u0000\u0263\u0265\u0005f\u0000\u0000\u0264\u0266"+ + "\u0003$\u0012\u0000\u0265\u0264\u0001\u0000\u0000\u0000\u0265\u0266\u0001"+ + "\u0000\u0000\u0000\u0266!\u0001\u0000\u0000\u0000\u0267\u0268\u0003\u00e4"+ + "r\u0000\u0268#\u0001\u0000\u0000\u0000\u0269\u026a\u0005\u0011\u0000\u0000"+ + "\u026a\u0274\u0003\u001a\r\u0000\u026b\u026c\u0005\u0011\u0000\u0000\u026c"+ + "\u0270\u0003\f\u0006\u0000\u026d\u026f\u0003&\u0013\u0000\u026e\u026d"+ + "\u0001\u0000\u0000\u0000\u026f\u0272\u0001\u0000\u0000\u0000\u0270\u026e"+ + "\u0001\u0000\u0000\u0000\u0270\u0271\u0001\u0000\u0000\u0000\u0271\u0274"+ + "\u0001\u0000\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0273\u0269"+ + "\u0001\u0000\u0000\u0000\u0273\u026b\u0001\u0000\u0000\u0000\u0274%\u0001"+ + "\u0000\u0000\u0000\u0275\u0276\u0005U\u0000\u0000\u0276\u0277\u0003\u0014"+ + "\n\u0000\u0277\'\u0001\u0000\u0000\u0000\u0278\u0279\u0005D\u0000\u0000"+ + "\u0279\u027a\u0003*\u0015\u0000\u027a\u027b\u0005C\u0000\u0000\u027b)"+ + "\u0001\u0000\u0000\u0000\u027c\u0281\u0003,\u0016\u0000\u027d\u027e\u0005"+ + "@\u0000\u0000\u027e\u0280\u0003,\u0016\u0000\u027f\u027d\u0001\u0000\u0000"+ + "\u0000\u0280\u0283\u0001\u0000\u0000\u0000\u0281\u027f\u0001\u0000\u0000"+ + "\u0000\u0281\u0282\u0001\u0000\u0000\u0000\u0282+\u0001\u0000\u0000\u0000"+ + "\u0283\u0281\u0001\u0000\u0000\u0000\u0284\u0287\u0003\n\u0005\u0000\u0285"+ + "\u0287\u0003.\u0017\u0000\u0286\u0284\u0001\u0000\u0000\u0000\u0286\u0285"+ + "\u0001\u0000\u0000\u0000\u0287-\u0001\u0000\u0000\u0000\u0288\u028a\u0003"+ + "\u00e4r\u0000\u0289\u0288\u0001\u0000\u0000\u0000\u028a\u028d\u0001\u0000"+ + "\u0000\u0000\u028b\u0289\u0001\u0000\u0000\u0000\u028b\u028c\u0001\u0000"+ + "\u0000\u0000\u028c\u028e\u0001\u0000\u0000\u0000\u028d\u028b\u0001\u0000"+ + "\u0000\u0000\u028e\u0290\u0005G\u0000\u0000\u028f\u0291\u00030\u0018\u0000"+ + "\u0290\u028f\u0001\u0000\u0000\u0000\u0290\u0291\u0001\u0000\u0000\u0000"+ + "\u0291/\u0001\u0000\u0000\u0000\u0292\u0293\u0005\u0011\u0000\u0000\u0293"+ + "\u0297\u0003\n\u0005\u0000\u0294\u0295\u0005(\u0000\u0000\u0295\u0297"+ + "\u0003\n\u0005\u0000\u0296\u0292\u0001\u0000\u0000\u0000\u0296\u0294\u0001"+ + "\u0000\u0000\u0000\u02971\u0001\u0000\u0000\u0000\u0298\u0299\u0006\u0019"+ + "\uffff\uffff\u0000\u0299\u029a\u0005f\u0000\u0000\u029a\u02a0\u0001\u0000"+ + "\u0000\u0000\u029b\u029c\n\u0001\u0000\u0000\u029c\u029d\u0005A\u0000"+ + "\u0000\u029d\u029f\u0005f\u0000\u0000\u029e\u029b\u0001\u0000\u0000\u0000"+ + "\u029f\u02a2\u0001\u0000\u0000\u0000\u02a0\u029e\u0001\u0000\u0000\u0000"+ + "\u02a0\u02a1\u0001\u0000\u0000\u0000\u02a13\u0001\u0000\u0000\u0000\u02a2"+ + "\u02a0\u0001\u0000\u0000\u0000\u02a3\u02a9\u0005f\u0000\u0000\u02a4\u02a5"+ + "\u00036\u001b\u0000\u02a5\u02a6\u0005A\u0000\u0000\u02a6\u02a7\u0005f"+ + "\u0000\u0000\u02a7\u02a9\u0001\u0000\u0000\u0000\u02a8\u02a3\u0001\u0000"+ + "\u0000\u0000\u02a8\u02a4\u0001\u0000\u0000\u0000\u02a95\u0001\u0000\u0000"+ + "\u0000\u02aa\u02ab\u0006\u001b\uffff\uffff\u0000\u02ab\u02ac\u0005f\u0000"+ + "\u0000\u02ac\u02b2\u0001\u0000\u0000\u0000\u02ad\u02ae\n\u0001\u0000\u0000"+ + "\u02ae\u02af\u0005A\u0000\u0000\u02af\u02b1\u0005f\u0000\u0000\u02b0\u02ad"+ + "\u0001\u0000\u0000\u0000\u02b1\u02b4\u0001\u0000\u0000\u0000\u02b2\u02b0"+ + "\u0001\u0000\u0000\u0000\u02b2\u02b3\u0001\u0000\u0000\u0000\u02b37\u0001"+ + "\u0000\u0000\u0000\u02b4\u02b2\u0001\u0000\u0000\u0000\u02b5\u02bb\u0005"+ + "f\u0000\u0000\u02b6\u02b7\u0003<\u001e\u0000\u02b7\u02b8\u0005A\u0000"+ + "\u0000\u02b8\u02b9\u0005f\u0000\u0000\u02b9\u02bb\u0001\u0000\u0000\u0000"+ + "\u02ba\u02b5\u0001\u0000\u0000\u0000\u02ba\u02b6\u0001\u0000\u0000\u0000"+ + "\u02bb9\u0001\u0000\u0000\u0000\u02bc\u02bd\u0005f\u0000\u0000\u02bd;"+ + "\u0001\u0000\u0000\u0000\u02be\u02bf\u0006\u001e\uffff\uffff\u0000\u02bf"+ + "\u02c0\u0005f\u0000\u0000\u02c0\u02c6\u0001\u0000\u0000\u0000\u02c1\u02c2"+ + "\n\u0001\u0000\u0000\u02c2\u02c3\u0005A\u0000\u0000\u02c3\u02c5\u0005"+ + "f\u0000\u0000\u02c4\u02c1\u0001\u0000\u0000\u0000\u02c5\u02c8\u0001\u0000"+ + "\u0000\u0000\u02c6\u02c4\u0001\u0000\u0000\u0000\u02c6\u02c7\u0001\u0000"+ + "\u0000\u0000\u02c7=\u0001\u0000\u0000\u0000\u02c8\u02c6\u0001\u0000\u0000"+ + "\u0000\u02c9\u02cb\u0003@ \u0000\u02ca\u02c9\u0001\u0000\u0000\u0000\u02ca"+ + "\u02cb\u0001\u0000\u0000\u0000\u02cb\u02cf\u0001\u0000\u0000\u0000\u02cc"+ + "\u02ce\u0003D\"\u0000\u02cd\u02cc\u0001\u0000\u0000\u0000\u02ce\u02d1"+ + "\u0001\u0000\u0000\u0000\u02cf\u02cd\u0001\u0000\u0000\u0000\u02cf\u02d0"+ + "\u0001\u0000\u0000\u0000\u02d0\u02d5\u0001\u0000\u0000\u0000\u02d1\u02cf"+ + "\u0001\u0000\u0000\u0000\u02d2\u02d4\u0003N\'\u0000\u02d3\u02d2\u0001"+ + "\u0000\u0000\u0000\u02d4\u02d7\u0001\u0000\u0000\u0000\u02d5\u02d3\u0001"+ + "\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000\u0000\u0000\u02d6\u02d8\u0001"+ + "\u0000\u0000\u0000\u02d7\u02d5\u0001\u0000\u0000\u0000\u02d8\u02d9\u0005"+ + "\u0000\u0000\u0001\u02d9?\u0001\u0000\u0000\u0000\u02da\u02dc\u0003B!"+ + "\u0000\u02db\u02da\u0001\u0000\u0000\u0000\u02dc\u02df\u0001\u0000\u0000"+ + "\u0000\u02dd\u02db\u0001\u0000\u0000\u0000\u02dd\u02de\u0001\u0000\u0000"+ + "\u0000\u02de\u02e0\u0001\u0000\u0000\u0000\u02df\u02dd\u0001\u0000\u0000"+ + "\u0000\u02e0\u02e1\u0005 \u0000\u0000\u02e1\u02e2\u00032\u0019\u0000\u02e2"+ + "\u02e3\u0005?\u0000\u0000\u02e3A\u0001\u0000\u0000\u0000\u02e4\u02e5\u0003"+ + "\u00e4r\u0000\u02e5C\u0001\u0000\u0000\u0000\u02e6\u02eb\u0003F#\u0000"+ + "\u02e7\u02eb\u0003H$\u0000\u02e8\u02eb\u0003J%\u0000\u02e9\u02eb\u0003"+ + "L&\u0000\u02ea\u02e6\u0001\u0000\u0000\u0000\u02ea\u02e7\u0001\u0000\u0000"+ + "\u0000\u02ea\u02e8\u0001\u0000\u0000\u0000\u02ea\u02e9\u0001\u0000\u0000"+ + "\u0000\u02ebE\u0001\u0000\u0000\u0000\u02ec\u02ed\u0005\u0019\u0000\u0000"+ + "\u02ed\u02ee\u00034\u001a\u0000\u02ee\u02ef\u0005?\u0000\u0000\u02efG"+ + "\u0001\u0000\u0000\u0000\u02f0\u02f1\u0005\u0019\u0000\u0000\u02f1\u02f2"+ + "\u00036\u001b\u0000\u02f2\u02f3\u0005A\u0000\u0000\u02f3\u02f4\u0005S"+ + "\u0000\u0000\u02f4\u02f5\u0005?\u0000\u0000\u02f5I\u0001\u0000\u0000\u0000"+ + "\u02f6\u02f7\u0005\u0019\u0000\u0000\u02f7\u02f8\u0005&\u0000\u0000\u02f8"+ + "\u02f9\u00034\u001a\u0000\u02f9\u02fa\u0005A\u0000\u0000\u02fa\u02fb\u0005"+ + "f\u0000\u0000\u02fb\u02fc\u0005?\u0000\u0000\u02fcK\u0001\u0000\u0000"+ + "\u0000\u02fd\u02fe\u0005\u0019\u0000\u0000\u02fe\u02ff\u0005&\u0000\u0000"+ + "\u02ff\u0300\u00034\u001a\u0000\u0300\u0301\u0005A\u0000\u0000\u0301\u0302"+ + "\u0005S\u0000\u0000\u0302\u0303\u0005?\u0000\u0000\u0303M\u0001\u0000"+ + "\u0000\u0000\u0304\u0308\u0003P(\u0000\u0305\u0308\u0003\u00c4b\u0000"+ + "\u0306\u0308\u0005?\u0000\u0000\u0307\u0304\u0001\u0000\u0000\u0000\u0307"+ + "\u0305\u0001\u0000\u0000\u0000\u0307\u0306\u0001\u0000\u0000\u0000\u0308"+ + "O\u0001\u0000\u0000\u0000\u0309\u030c\u0003R)\u0000\u030a\u030c\u0003"+ + "\u00b8\\\u0000\u030b\u0309\u0001\u0000\u0000\u0000\u030b\u030a\u0001\u0000"+ + "\u0000\u0000\u030cQ\u0001\u0000\u0000\u0000\u030d\u030f\u0003T*\u0000"+ + "\u030e\u030d\u0001\u0000\u0000\u0000\u030f\u0312\u0001\u0000\u0000\u0000"+ + "\u0310\u030e\u0001\u0000\u0000\u0000\u0310\u0311\u0001\u0000\u0000\u0000"+ + "\u0311\u0313\u0001\u0000\u0000\u0000\u0312\u0310\u0001\u0000\u0000\u0000"+ + "\u0313\u0314\u0005\t\u0000\u0000\u0314\u0316\u0005f\u0000\u0000\u0315"+ + "\u0317\u0003V+\u0000\u0316\u0315\u0001\u0000\u0000\u0000\u0316\u0317\u0001"+ + "\u0000\u0000\u0000\u0317\u0319\u0001\u0000\u0000\u0000\u0318\u031a\u0003"+ + "Z-\u0000\u0319\u0318\u0001\u0000\u0000\u0000\u0319\u031a\u0001\u0000\u0000"+ + "\u0000\u031a\u031c\u0001\u0000\u0000\u0000\u031b\u031d\u0003\\.\u0000"+ + "\u031c\u031b\u0001\u0000\u0000\u0000\u031c\u031d\u0001\u0000\u0000\u0000"+ + "\u031d\u031e\u0001\u0000\u0000\u0000\u031e\u031f\u0003`0\u0000\u031fS"+ + "\u0001\u0000\u0000\u0000\u0320\u0329\u0003\u00e4r\u0000\u0321\u0329\u0005"+ + "#\u0000\u0000\u0322\u0329\u0005\"\u0000\u0000\u0323\u0329\u0005!\u0000"+ + "\u0000\u0324\u0329\u0005\u0001\u0000\u0000\u0325\u0329\u0005&\u0000\u0000"+ + "\u0326\u0329\u0005\u0012\u0000\u0000\u0327\u0329\u0005\'\u0000\u0000\u0328"+ + "\u0320\u0001\u0000\u0000\u0000\u0328\u0321\u0001\u0000\u0000\u0000\u0328"+ + "\u0322\u0001\u0000\u0000\u0000\u0328\u0323\u0001\u0000\u0000\u0000\u0328"+ + "\u0324\u0001\u0000\u0000\u0000\u0328\u0325\u0001\u0000\u0000\u0000\u0328"+ + "\u0326\u0001\u0000\u0000\u0000\u0328\u0327\u0001\u0000\u0000\u0000\u0329"+ + "U\u0001\u0000\u0000\u0000\u032a\u032b\u0005D\u0000\u0000\u032b\u032c\u0003"+ + "X,\u0000\u032c\u032d\u0005C\u0000\u0000\u032dW\u0001\u0000\u0000\u0000"+ + "\u032e\u0333\u0003 \u0010\u0000\u032f\u0330\u0005@\u0000\u0000\u0330\u0332"+ + "\u0003 \u0010\u0000\u0331\u032f\u0001\u0000\u0000\u0000\u0332\u0335\u0001"+ + "\u0000\u0000\u0000\u0333\u0331\u0001\u0000\u0000\u0000\u0333\u0334\u0001"+ + "\u0000\u0000\u0000\u0334Y\u0001\u0000\u0000\u0000\u0335\u0333\u0001\u0000"+ + "\u0000\u0000\u0336\u0337\u0005\u0011\u0000\u0000\u0337\u0338\u0003\u000e"+ + "\u0007\u0000\u0338[\u0001\u0000\u0000\u0000\u0339\u033a\u0005\u0018\u0000"+ + "\u0000\u033a\u033b\u0003^/\u0000\u033b]\u0001\u0000\u0000\u0000\u033c"+ + "\u0341\u0003\u0014\n\u0000\u033d\u033e\u0005@\u0000\u0000\u033e\u0340"+ + "\u0003\u0014\n\u0000\u033f\u033d\u0001\u0000\u0000\u0000\u0340\u0343\u0001"+ + "\u0000\u0000\u0000\u0341\u033f\u0001\u0000\u0000\u0000\u0341\u0342\u0001"+ + "\u0000\u0000\u0000\u0342_\u0001\u0000\u0000\u0000\u0343\u0341\u0001\u0000"+ + "\u0000\u0000\u0344\u0348\u0005;\u0000\u0000\u0345\u0347\u0003b1\u0000"+ + "\u0346\u0345\u0001\u0000\u0000\u0000\u0347\u034a\u0001\u0000\u0000\u0000"+ + "\u0348\u0346\u0001\u0000\u0000\u0000\u0348\u0349\u0001\u0000\u0000\u0000"+ + "\u0349\u034b\u0001\u0000\u0000\u0000\u034a\u0348\u0001\u0000\u0000\u0000"+ + "\u034b\u034c\u0005<\u0000\u0000\u034ca\u0001\u0000\u0000\u0000\u034d\u0352"+ + "\u0003d2\u0000\u034e\u0352\u0003\u00a8T\u0000\u034f\u0352\u0003\u00aa"+ + "U\u0000\u0350\u0352\u0003\u00acV\u0000\u0351\u034d\u0001\u0000\u0000\u0000"+ + "\u0351\u034e\u0001\u0000\u0000\u0000\u0351\u034f\u0001\u0000\u0000\u0000"+ + "\u0351\u0350\u0001\u0000\u0000\u0000\u0352c\u0001\u0000\u0000\u0000\u0353"+ + "\u0359\u0003f3\u0000\u0354\u0359\u0003\u008aE\u0000\u0355\u0359\u0003"+ + "P(\u0000\u0356\u0359\u0003\u00c4b\u0000\u0357\u0359\u0005?\u0000\u0000"+ + "\u0358\u0353\u0001\u0000\u0000\u0000\u0358\u0354\u0001\u0000\u0000\u0000"+ + "\u0358\u0355\u0001\u0000\u0000\u0000\u0358\u0356\u0001\u0000\u0000\u0000"+ + "\u0358\u0357\u0001\u0000\u0000\u0000\u0359e\u0001\u0000\u0000\u0000\u035a"+ + "\u035c\u0003h4\u0000\u035b\u035a\u0001\u0000\u0000\u0000\u035c\u035f\u0001"+ + "\u0000\u0000\u0000\u035d\u035b\u0001\u0000\u0000\u0000\u035d\u035e\u0001"+ + "\u0000\u0000\u0000\u035e\u0360\u0001\u0000\u0000\u0000\u035f\u035d\u0001"+ + "\u0000\u0000\u0000\u0360\u0361\u0003r9\u0000\u0361\u0362\u0003j5\u0000"+ + "\u0362\u0363\u0005?\u0000\u0000\u0363g\u0001\u0000\u0000\u0000\u0364\u036d"+ + "\u0003\u00e4r\u0000\u0365\u036d\u0005#\u0000\u0000\u0366\u036d\u0005\""+ + "\u0000\u0000\u0367\u036d\u0005!\u0000\u0000\u0368\u036d\u0005&\u0000\u0000"+ + "\u0369\u036d\u0005\u0012\u0000\u0000\u036a\u036d\u0005.\u0000\u0000\u036b"+ + "\u036d\u00051\u0000\u0000\u036c\u0364\u0001\u0000\u0000\u0000\u036c\u0365"+ + "\u0001\u0000\u0000\u0000\u036c\u0366\u0001\u0000\u0000\u0000\u036c\u0367"+ + "\u0001\u0000\u0000\u0000\u036c\u0368\u0001\u0000\u0000\u0000\u036c\u0369"+ + "\u0001\u0000\u0000\u0000\u036c\u036a\u0001\u0000\u0000\u0000\u036c\u036b"+ + "\u0001\u0000\u0000\u0000\u036di\u0001\u0000\u0000\u0000\u036e\u0373\u0003"+ + "l6\u0000\u036f\u0370\u0005@\u0000\u0000\u0370\u0372\u0003l6\u0000\u0371"+ + "\u036f\u0001\u0000\u0000\u0000\u0372\u0375\u0001\u0000\u0000\u0000\u0373"+ + "\u0371\u0001\u0000\u0000\u0000\u0373\u0374\u0001\u0000\u0000\u0000\u0374"+ + "k\u0001\u0000\u0000\u0000\u0375\u0373\u0001\u0000\u0000\u0000\u0376\u0379"+ + "\u0003n7\u0000\u0377\u0378\u0005B\u0000\u0000\u0378\u037a\u0003p8\u0000"+ + "\u0379\u0377\u0001\u0000\u0000\u0000\u0379\u037a\u0001\u0000\u0000\u0000"+ + "\u037am\u0001\u0000\u0000\u0000\u037b\u037d\u0005f\u0000\u0000\u037c\u037e"+ + "\u0003\u001e\u000f\u0000\u037d\u037c\u0001\u0000\u0000\u0000\u037d\u037e"+ + "\u0001\u0000\u0000\u0000\u037eo\u0001\u0000\u0000\u0000\u037f\u0382\u0003"+ + "\u019c\u00ce\u0000\u0380\u0382\u0003\u00f6{\u0000\u0381\u037f\u0001\u0000"+ + "\u0000\u0000\u0381\u0380\u0001\u0000\u0000\u0000\u0382q\u0001\u0000\u0000"+ + "\u0000\u0383\u0386\u0003t:\u0000\u0384\u0386\u0003v;\u0000\u0385\u0383"+ + "\u0001\u0000\u0000\u0000\u0385\u0384\u0001\u0000\u0000\u0000\u0386s\u0001"+ + "\u0000\u0000\u0000\u0387\u038a\u0003\u0004\u0002\u0000\u0388\u038a\u0005"+ + "\u0003\u0000\u0000\u0389\u0387\u0001\u0000\u0000\u0000\u0389\u0388\u0001"+ + "\u0000\u0000\u0000\u038au\u0001\u0000\u0000\u0000\u038b\u038f\u0003x<"+ + "\u0000\u038c\u038f\u0003\u0086C\u0000\u038d\u038f\u0003\u0088D\u0000\u038e"+ + "\u038b\u0001\u0000\u0000\u0000\u038e\u038c\u0001\u0000\u0000\u0000\u038e"+ + "\u038d\u0001\u0000\u0000\u0000\u038fw\u0001\u0000\u0000\u0000\u0390\u0393"+ + "\u0003~?\u0000\u0391\u0393\u0003\u0084B\u0000\u0392\u0390\u0001\u0000"+ + "\u0000\u0000\u0392\u0391\u0001\u0000\u0000\u0000\u0393\u0398\u0001\u0000"+ + "\u0000\u0000\u0394\u0397\u0003|>\u0000\u0395\u0397\u0003\u0082A\u0000"+ + "\u0396\u0394\u0001\u0000\u0000\u0000\u0396\u0395\u0001\u0000\u0000\u0000"+ + "\u0397\u039a\u0001\u0000\u0000\u0000\u0398\u0396\u0001\u0000\u0000\u0000"+ + "\u0398\u0399\u0001\u0000\u0000\u0000\u0399y\u0001\u0000\u0000\u0000\u039a"+ + "\u0398\u0001\u0000\u0000\u0000\u039b\u039d\u0005f\u0000\u0000\u039c\u039e"+ + "\u0003(\u0014\u0000\u039d\u039c\u0001\u0000\u0000\u0000\u039d\u039e\u0001"+ + "\u0000\u0000\u0000\u039e\u03ac\u0001\u0000\u0000\u0000\u039f\u03a0\u0003"+ + "x<\u0000\u03a0\u03a4\u0005A\u0000\u0000\u03a1\u03a3\u0003\u00e4r\u0000"+ + "\u03a2\u03a1\u0001\u0000\u0000\u0000\u03a3\u03a6\u0001\u0000\u0000\u0000"+ + "\u03a4\u03a2\u0001\u0000\u0000\u0000\u03a4\u03a5\u0001\u0000\u0000\u0000"+ + "\u03a5\u03a7\u0001\u0000\u0000\u0000\u03a6\u03a4\u0001\u0000\u0000\u0000"+ + "\u03a7\u03a9\u0005f\u0000\u0000\u03a8\u03aa\u0003(\u0014\u0000\u03a9\u03a8"+ + "\u0001\u0000\u0000\u0000\u03a9\u03aa\u0001\u0000\u0000\u0000\u03aa\u03ac"+ + "\u0001\u0000\u0000\u0000\u03ab\u039b\u0001\u0000\u0000\u0000\u03ab\u039f"+ + "\u0001\u0000\u0000\u0000\u03ac{\u0001\u0000\u0000\u0000\u03ad\u03b1\u0005"+ + "A\u0000\u0000\u03ae\u03b0\u0003\u00e4r\u0000\u03af\u03ae\u0001\u0000\u0000"+ + "\u0000\u03b0\u03b3\u0001\u0000\u0000\u0000\u03b1\u03af\u0001\u0000\u0000"+ + "\u0000\u03b1\u03b2\u0001\u0000\u0000\u0000\u03b2\u03b4\u0001\u0000\u0000"+ + "\u0000\u03b3\u03b1\u0001\u0000\u0000\u0000\u03b4\u03b6\u0005f\u0000\u0000"+ + "\u03b5\u03b7\u0003(\u0014\u0000\u03b6\u03b5\u0001\u0000\u0000\u0000\u03b6"+ + "\u03b7\u0001\u0000\u0000\u0000\u03b7}\u0001\u0000\u0000\u0000\u03b8\u03ba"+ + "\u0005f\u0000\u0000\u03b9\u03bb\u0003(\u0014\u0000\u03ba\u03b9\u0001\u0000"+ + "\u0000\u0000\u03ba\u03bb\u0001\u0000\u0000\u0000\u03bb\u007f\u0001\u0000"+ + "\u0000\u0000\u03bc\u03bd\u0003z=\u0000\u03bd\u0081\u0001\u0000\u0000\u0000"+ + "\u03be\u03bf\u0003|>\u0000\u03bf\u0083\u0001\u0000\u0000\u0000\u03c0\u03c1"+ + "\u0003~?\u0000\u03c1\u0085\u0001\u0000\u0000\u0000\u03c2\u03c3\u0005f"+ + "\u0000\u0000\u03c3\u0087\u0001\u0000\u0000\u0000\u03c4\u03c5\u0003t:\u0000"+ + "\u03c5\u03c6\u0003\u001e\u000f\u0000\u03c6\u03ce\u0001\u0000\u0000\u0000"+ + "\u03c7\u03c8\u0003x<\u0000\u03c8\u03c9\u0003\u001e\u000f\u0000\u03c9\u03ce"+ + "\u0001\u0000\u0000\u0000\u03ca\u03cb\u0003\u0086C\u0000\u03cb\u03cc\u0003"+ + "\u001e\u000f\u0000\u03cc\u03ce\u0001\u0000\u0000\u0000\u03cd\u03c4\u0001"+ + "\u0000\u0000\u0000\u03cd\u03c7\u0001\u0000\u0000\u0000\u03cd\u03ca\u0001"+ + "\u0000\u0000\u0000\u03ce\u0089\u0001\u0000\u0000\u0000\u03cf\u03d1\u0003"+ + "\u008cF\u0000\u03d0\u03cf\u0001\u0000\u0000\u0000\u03d1\u03d4\u0001\u0000"+ + "\u0000\u0000\u03d2\u03d0\u0001\u0000\u0000\u0000\u03d2\u03d3\u0001\u0000"+ + "\u0000\u0000\u03d3\u03d5\u0001\u0000\u0000\u0000\u03d4\u03d2\u0001\u0000"+ + "\u0000\u0000\u03d5\u03d6\u0003\u008eG\u0000\u03d6\u03d7\u0003\u00a6S\u0000"+ + "\u03d7\u008b\u0001\u0000\u0000\u0000\u03d8\u03e3\u0003\u00e4r\u0000\u03d9"+ + "\u03e3\u0005#\u0000\u0000\u03da\u03e3\u0005\"\u0000\u0000\u03db\u03e3"+ + "\u0005!\u0000\u0000\u03dc\u03e3\u0005\u0001\u0000\u0000\u03dd\u03e3\u0005"+ + "&\u0000\u0000\u03de\u03e3\u0005\u0012\u0000\u0000\u03df\u03e3\u0005*\u0000"+ + "\u0000\u03e0\u03e3\u0005\u001e\u0000\u0000\u03e1\u03e3\u0005\'\u0000\u0000"+ + "\u03e2\u03d8\u0001\u0000\u0000\u0000\u03e2\u03d9\u0001\u0000\u0000\u0000"+ + "\u03e2\u03da\u0001\u0000\u0000\u0000\u03e2\u03db\u0001\u0000\u0000\u0000"+ + "\u03e2\u03dc\u0001\u0000\u0000\u0000\u03e2\u03dd\u0001\u0000\u0000\u0000"+ + "\u03e2\u03de\u0001\u0000\u0000\u0000\u03e2\u03df\u0001\u0000\u0000\u0000"+ + "\u03e2\u03e0\u0001\u0000\u0000\u0000\u03e2\u03e1\u0001\u0000\u0000\u0000"+ + "\u03e3\u008d\u0001\u0000\u0000\u0000\u03e4\u03e5\u0003\u0090H\u0000\u03e5"+ + "\u03e7\u0003\u0092I\u0000\u03e6\u03e8\u0003\u00a0P\u0000\u03e7\u03e6\u0001"+ + "\u0000\u0000\u0000\u03e7\u03e8\u0001\u0000\u0000\u0000\u03e8\u03f6\u0001"+ + "\u0000\u0000\u0000\u03e9\u03ed\u0003V+\u0000\u03ea\u03ec\u0003\u00e4r"+ + "\u0000\u03eb\u03ea\u0001\u0000\u0000\u0000\u03ec\u03ef\u0001\u0000\u0000"+ + "\u0000\u03ed\u03eb\u0001\u0000\u0000\u0000\u03ed\u03ee\u0001\u0000\u0000"+ + "\u0000\u03ee\u03f0\u0001\u0000\u0000\u0000\u03ef\u03ed\u0001\u0000\u0000"+ + "\u0000\u03f0\u03f1\u0003\u0090H\u0000\u03f1\u03f3\u0003\u0092I\u0000\u03f2"+ + "\u03f4\u0003\u00a0P\u0000\u03f3\u03f2\u0001\u0000\u0000\u0000\u03f3\u03f4"+ + "\u0001\u0000\u0000\u0000\u03f4\u03f6\u0001\u0000\u0000\u0000\u03f5\u03e4"+ + "\u0001\u0000\u0000\u0000\u03f5\u03e9\u0001\u0000\u0000\u0000\u03f6\u008f"+ + "\u0001\u0000\u0000\u0000\u03f7\u03fa\u0003r9\u0000\u03f8\u03fa\u00050"+ + "\u0000\u0000\u03f9\u03f7\u0001\u0000\u0000\u0000\u03f9\u03f8\u0001\u0000"+ + "\u0000\u0000\u03fa\u0091\u0001\u0000\u0000\u0000\u03fb\u03fc\u0005f\u0000"+ + "\u0000\u03fc\u03fe\u00059\u0000\u0000\u03fd\u03ff\u0003\u0094J\u0000\u03fe"+ + "\u03fd\u0001\u0000\u0000\u0000\u03fe\u03ff\u0001\u0000\u0000\u0000\u03ff"+ + "\u0400\u0001\u0000\u0000\u0000\u0400\u0402\u0005:\u0000\u0000\u0401\u0403"+ + "\u0003\u001e\u000f\u0000\u0402\u0401\u0001\u0000\u0000\u0000\u0402\u0403"+ + "\u0001\u0000\u0000\u0000\u0403\u0093\u0001\u0000\u0000\u0000\u0404\u040b"+ + "\u0003\u009eO\u0000\u0405\u0406\u0003\u0096K\u0000\u0406\u0407\u0005@"+ + "\u0000\u0000\u0407\u0408\u0003\u009cN\u0000\u0408\u040b\u0001\u0000\u0000"+ + "\u0000\u0409\u040b\u0003\u009cN\u0000\u040a\u0404\u0001\u0000\u0000\u0000"+ + "\u040a\u0405\u0001\u0000\u0000\u0000\u040a\u0409\u0001\u0000\u0000\u0000"+ + "\u040b\u0095\u0001\u0000\u0000\u0000\u040c\u0411\u0003\u0098L\u0000\u040d"+ + "\u040e\u0005@\u0000\u0000\u040e\u0410\u0003\u0098L\u0000\u040f\u040d\u0001"+ + "\u0000\u0000\u0000\u0410\u0413\u0001\u0000\u0000\u0000\u0411\u040f\u0001"+ + "\u0000\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u041d\u0001"+ + "\u0000\u0000\u0000\u0413\u0411\u0001\u0000\u0000\u0000\u0414\u0419\u0003"+ + "\u009eO\u0000\u0415\u0416\u0005@\u0000\u0000\u0416\u0418\u0003\u0098L"+ + "\u0000\u0417\u0415\u0001\u0000\u0000\u0000\u0418\u041b\u0001\u0000\u0000"+ + "\u0000\u0419\u0417\u0001\u0000\u0000\u0000\u0419\u041a\u0001\u0000\u0000"+ + "\u0000\u041a\u041d\u0001\u0000\u0000\u0000\u041b\u0419\u0001\u0000\u0000"+ + "\u0000\u041c\u040c\u0001\u0000\u0000\u0000\u041c\u0414\u0001\u0000\u0000"+ + "\u0000\u041d\u0097\u0001\u0000\u0000\u0000\u041e\u0420\u0003\u009aM\u0000"+ + "\u041f\u041e\u0001\u0000\u0000\u0000\u0420\u0423\u0001\u0000\u0000\u0000"+ + "\u0421\u041f\u0001\u0000\u0000\u0000\u0421\u0422\u0001\u0000\u0000\u0000"+ + "\u0422\u0424\u0001\u0000\u0000\u0000\u0423\u0421\u0001\u0000\u0000\u0000"+ + "\u0424\u0425\u0003r9\u0000\u0425\u0426\u0003n7\u0000\u0426\u0099\u0001"+ + "\u0000\u0000\u0000\u0427\u042a\u0003\u00e4r\u0000\u0428\u042a\u0005\u0012"+ + "\u0000\u0000\u0429\u0427\u0001\u0000\u0000\u0000\u0429\u0428\u0001\u0000"+ + "\u0000\u0000\u042a\u009b\u0001\u0000\u0000\u0000\u042b\u042d\u0003\u009a"+ + "M\u0000\u042c\u042b\u0001\u0000\u0000\u0000\u042d\u0430\u0001\u0000\u0000"+ + "\u0000\u042e\u042c\u0001\u0000\u0000\u0000\u042e\u042f\u0001\u0000\u0000"+ + "\u0000\u042f\u0431\u0001\u0000\u0000\u0000\u0430\u042e\u0001\u0000\u0000"+ + "\u0000\u0431\u0435\u0003r9\u0000\u0432\u0434\u0003\u00e4r\u0000\u0433"+ + "\u0432\u0001\u0000\u0000\u0000\u0434\u0437\u0001\u0000\u0000\u0000\u0435"+ + "\u0433\u0001\u0000\u0000\u0000\u0435\u0436\u0001\u0000\u0000\u0000\u0436"+ + "\u0438\u0001\u0000\u0000\u0000\u0437\u0435\u0001\u0000\u0000\u0000\u0438"+ + "\u0439\u0005h\u0000\u0000\u0439\u043a\u0003n7\u0000\u043a\u043d\u0001"+ + "\u0000\u0000\u0000\u043b\u043d\u0003\u0098L\u0000\u043c\u042e\u0001\u0000"+ + "\u0000\u0000\u043c\u043b\u0001\u0000\u0000\u0000\u043d\u009d\u0001\u0000"+ + "\u0000\u0000\u043e\u0440\u0003\u00e4r\u0000\u043f\u043e\u0001\u0000\u0000"+ + "\u0000\u0440\u0443\u0001\u0000\u0000\u0000\u0441\u043f\u0001\u0000\u0000"+ + "\u0000\u0441\u0442\u0001\u0000\u0000\u0000\u0442\u0444\u0001\u0000\u0000"+ + "\u0000\u0443\u0441\u0001\u0000\u0000\u0000\u0444\u0447\u0003r9\u0000\u0445"+ + "\u0446\u0005f\u0000\u0000\u0446\u0448\u0005A\u0000\u0000\u0447\u0445\u0001"+ + "\u0000\u0000\u0000\u0447\u0448\u0001\u0000\u0000\u0000\u0448\u0449\u0001"+ + "\u0000\u0000\u0000\u0449\u044a\u0005+\u0000\u0000\u044a\u009f\u0001\u0000"+ + "\u0000\u0000\u044b\u044c\u0005-\u0000\u0000\u044c\u044d\u0003\u00a2Q\u0000"+ + "\u044d\u00a1\u0001\u0000\u0000\u0000\u044e\u0453\u0003\u00a4R\u0000\u044f"+ + "\u0450\u0005@\u0000\u0000\u0450\u0452\u0003\u00a4R\u0000\u0451\u044f\u0001"+ + "\u0000\u0000\u0000\u0452\u0455\u0001\u0000\u0000\u0000\u0453\u0451\u0001"+ + "\u0000\u0000\u0000\u0453\u0454\u0001\u0000\u0000\u0000\u0454\u00a3\u0001"+ + "\u0000\u0000\u0000\u0455\u0453\u0001\u0000\u0000\u0000\u0456\u0459\u0003"+ + "\u000e\u0007\u0000\u0457\u0459\u0003\u001a\r\u0000\u0458\u0456\u0001\u0000"+ + "\u0000\u0000\u0458\u0457\u0001\u0000\u0000\u0000\u0459\u00a5\u0001\u0000"+ + "\u0000\u0000\u045a\u045d\u0003\u00fa}\u0000\u045b\u045d\u0005?\u0000\u0000"+ + "\u045c\u045a\u0001\u0000\u0000\u0000\u045c\u045b\u0001\u0000\u0000\u0000"+ + "\u045d\u00a7\u0001\u0000\u0000\u0000\u045e\u045f\u0003\u00fa}\u0000\u045f"+ + "\u00a9\u0001\u0000\u0000\u0000\u0460\u0461\u0005&\u0000\u0000\u0461\u0462"+ + "\u0003\u00fa}\u0000\u0462\u00ab\u0001\u0000\u0000\u0000\u0463\u0465\u0003"+ + "\u00aeW\u0000\u0464\u0463\u0001\u0000\u0000\u0000\u0465\u0468\u0001\u0000"+ + "\u0000\u0000\u0466\u0464\u0001\u0000\u0000\u0000\u0466\u0467\u0001\u0000"+ + "\u0000\u0000\u0467\u0469\u0001\u0000\u0000\u0000\u0468\u0466\u0001\u0000"+ + "\u0000\u0000\u0469\u046b\u0003\u00b0X\u0000\u046a\u046c\u0003\u00a0P\u0000"+ + "\u046b\u046a\u0001\u0000\u0000\u0000\u046b\u046c\u0001\u0000\u0000\u0000"+ + "\u046c\u046d\u0001\u0000\u0000\u0000\u046d\u046e\u0003\u00b4Z\u0000\u046e"+ + "\u00ad\u0001\u0000\u0000\u0000\u046f\u0474\u0003\u00e4r\u0000\u0470\u0474"+ + "\u0005#\u0000\u0000\u0471\u0474\u0005\"\u0000\u0000\u0472\u0474\u0005"+ + "!\u0000\u0000\u0473\u046f\u0001\u0000\u0000\u0000\u0473\u0470\u0001\u0000"+ + "\u0000\u0000\u0473\u0471\u0001\u0000\u0000\u0000\u0473\u0472\u0001\u0000"+ + "\u0000\u0000\u0474\u00af\u0001\u0000\u0000\u0000\u0475\u0477\u0003V+\u0000"+ + "\u0476\u0475\u0001\u0000\u0000\u0000\u0476\u0477\u0001\u0000\u0000\u0000"+ + "\u0477\u0478\u0001\u0000\u0000\u0000\u0478\u0479\u0003\u00b2Y\u0000\u0479"+ + "\u047b\u00059\u0000\u0000\u047a\u047c\u0003\u0094J\u0000\u047b\u047a\u0001"+ + "\u0000\u0000\u0000\u047b\u047c\u0001\u0000\u0000\u0000\u047c\u047d\u0001"+ + "\u0000\u0000\u0000\u047d\u047e\u0005:\u0000\u0000\u047e\u00b1\u0001\u0000"+ + "\u0000\u0000\u047f\u0480\u0005f\u0000\u0000\u0480\u00b3\u0001\u0000\u0000"+ + "\u0000\u0481\u0483\u0005;\u0000\u0000\u0482\u0484\u0003\u00b6[\u0000\u0483"+ + "\u0482\u0001\u0000\u0000\u0000\u0483\u0484\u0001\u0000\u0000\u0000\u0484"+ + "\u0486\u0001\u0000\u0000\u0000\u0485\u0487\u0003\u00fc~\u0000\u0486\u0485"+ + "\u0001\u0000\u0000\u0000\u0486\u0487\u0001\u0000\u0000\u0000\u0487\u0488"+ + "\u0001\u0000\u0000\u0000\u0488\u0489\u0005<\u0000\u0000\u0489\u00b5\u0001"+ + "\u0000\u0000\u0000\u048a\u048c\u0003(\u0014\u0000\u048b\u048a\u0001\u0000"+ + "\u0000\u0000\u048b\u048c\u0001\u0000\u0000\u0000\u048c\u048d\u0001\u0000"+ + "\u0000\u0000\u048d\u048e\u0005+\u0000\u0000\u048e\u0490\u00059\u0000\u0000"+ + "\u048f\u0491\u0003\u018c\u00c6\u0000\u0490\u048f\u0001\u0000\u0000\u0000"+ + "\u0490\u0491\u0001\u0000\u0000\u0000\u0491\u0492\u0001\u0000\u0000\u0000"+ + "\u0492\u0493\u0005:\u0000\u0000\u0493\u04b9\u0005?\u0000\u0000\u0494\u0496"+ + "\u0003(\u0014\u0000\u0495\u0494\u0001\u0000\u0000\u0000\u0495\u0496\u0001"+ + "\u0000\u0000\u0000\u0496\u0497\u0001\u0000\u0000\u0000\u0497\u0498\u0005"+ + "(\u0000\u0000\u0498\u049a\u00059\u0000\u0000\u0499\u049b\u0003\u018c\u00c6"+ + "\u0000\u049a\u0499\u0001\u0000\u0000\u0000\u049a\u049b\u0001\u0000\u0000"+ + "\u0000\u049b\u049c\u0001\u0000\u0000\u0000\u049c\u049d\u0005:\u0000\u0000"+ + "\u049d\u04b9\u0005?\u0000\u0000\u049e\u049f\u00038\u001c\u0000\u049f\u04a1"+ + "\u0005A\u0000\u0000\u04a0\u04a2\u0003(\u0014\u0000\u04a1\u04a0\u0001\u0000"+ + "\u0000\u0000\u04a1\u04a2\u0001\u0000\u0000\u0000\u04a2\u04a3\u0001\u0000"+ + "\u0000\u0000\u04a3\u04a4\u0005(\u0000\u0000\u04a4\u04a6\u00059\u0000\u0000"+ + "\u04a5\u04a7\u0003\u018c\u00c6\u0000\u04a6\u04a5\u0001\u0000\u0000\u0000"+ + "\u04a6\u04a7\u0001\u0000\u0000\u0000\u04a7\u04a8\u0001\u0000\u0000\u0000"+ + "\u04a8\u04a9\u0005:\u0000\u0000\u04a9\u04aa\u0005?\u0000\u0000\u04aa\u04b9"+ + "\u0001\u0000\u0000\u0000\u04ab\u04ac\u0003\u015e\u00af\u0000\u04ac\u04ae"+ + "\u0005A\u0000\u0000\u04ad\u04af\u0003(\u0014\u0000\u04ae\u04ad\u0001\u0000"+ + "\u0000\u0000\u04ae\u04af\u0001\u0000\u0000\u0000\u04af\u04b0\u0001\u0000"+ + "\u0000\u0000\u04b0\u04b1\u0005(\u0000\u0000\u04b1\u04b3\u00059\u0000\u0000"+ + "\u04b2\u04b4\u0003\u018c\u00c6\u0000\u04b3\u04b2\u0001\u0000\u0000\u0000"+ + "\u04b3\u04b4\u0001\u0000\u0000\u0000\u04b4\u04b5\u0001\u0000\u0000\u0000"+ + "\u04b5\u04b6\u0005:\u0000\u0000\u04b6\u04b7\u0005?\u0000\u0000\u04b7\u04b9"+ + "\u0001\u0000\u0000\u0000\u04b8\u048b\u0001\u0000\u0000\u0000\u04b8\u0495"+ + "\u0001\u0000\u0000\u0000\u04b8\u049e\u0001\u0000\u0000\u0000\u04b8\u04ab"+ + "\u0001\u0000\u0000\u0000\u04b9\u00b7\u0001\u0000\u0000\u0000\u04ba\u04bc"+ + "\u0003T*\u0000\u04bb\u04ba\u0001\u0000\u0000\u0000\u04bc\u04bf\u0001\u0000"+ + "\u0000\u0000\u04bd\u04bb\u0001\u0000\u0000\u0000\u04bd\u04be\u0001\u0000"+ + "\u0000\u0000\u04be\u04c0\u0001\u0000\u0000\u0000\u04bf\u04bd\u0001\u0000"+ + "\u0000\u0000\u04c0\u04c1\u0005\u0010\u0000\u0000\u04c1\u04c3\u0005f\u0000"+ + "\u0000\u04c2\u04c4\u0003\\.\u0000\u04c3\u04c2\u0001\u0000\u0000\u0000"+ + "\u04c3\u04c4\u0001\u0000\u0000\u0000\u04c4\u04c5\u0001\u0000\u0000\u0000"+ + "\u04c5\u04c6\u0003\u00ba]\u0000\u04c6\u00b9\u0001\u0000\u0000\u0000\u04c7"+ + "\u04c9\u0005;\u0000\u0000\u04c8\u04ca\u0003\u00bc^\u0000\u04c9\u04c8\u0001"+ + "\u0000\u0000\u0000\u04c9\u04ca\u0001\u0000\u0000\u0000\u04ca\u04cc\u0001"+ + "\u0000\u0000\u0000\u04cb\u04cd\u0005@\u0000\u0000\u04cc\u04cb\u0001\u0000"+ + "\u0000\u0000\u04cc\u04cd\u0001\u0000\u0000\u0000\u04cd\u04cf\u0001\u0000"+ + "\u0000\u0000\u04ce\u04d0\u0003\u00c2a\u0000\u04cf\u04ce\u0001\u0000\u0000"+ + "\u0000\u04cf\u04d0\u0001\u0000\u0000\u0000\u04d0\u04d1\u0001\u0000\u0000"+ + "\u0000\u04d1\u04d2\u0005<\u0000\u0000\u04d2\u00bb\u0001\u0000\u0000\u0000"+ + "\u04d3\u04d8\u0003\u00be_\u0000\u04d4\u04d5\u0005@\u0000\u0000\u04d5\u04d7"+ + "\u0003\u00be_\u0000\u04d6\u04d4\u0001\u0000\u0000\u0000\u04d7\u04da\u0001"+ + "\u0000\u0000\u0000\u04d8\u04d6\u0001\u0000\u0000\u0000\u04d8\u04d9\u0001"+ + "\u0000\u0000\u0000\u04d9\u00bd\u0001\u0000\u0000\u0000\u04da\u04d8\u0001"+ + "\u0000\u0000\u0000\u04db\u04dd\u0003\u00c0`\u0000\u04dc\u04db\u0001\u0000"+ + "\u0000\u0000\u04dd\u04e0\u0001\u0000\u0000\u0000\u04de\u04dc\u0001\u0000"+ + "\u0000\u0000\u04de\u04df\u0001\u0000\u0000\u0000\u04df\u04e1\u0001\u0000"+ + "\u0000\u0000\u04e0\u04de\u0001\u0000\u0000\u0000\u04e1\u04e7\u0005f\u0000"+ + "\u0000\u04e2\u04e4\u00059\u0000\u0000\u04e3\u04e5\u0003\u018c\u00c6\u0000"+ + "\u04e4\u04e3\u0001\u0000\u0000\u0000\u04e4\u04e5\u0001\u0000\u0000\u0000"+ + "\u04e5\u04e6\u0001\u0000\u0000\u0000\u04e6\u04e8\u0005:\u0000\u0000\u04e7"+ + "\u04e2\u0001\u0000\u0000\u0000\u04e7\u04e8\u0001\u0000\u0000\u0000\u04e8"+ + "\u04ea\u0001\u0000\u0000\u0000\u04e9\u04eb\u0003`0\u0000\u04ea\u04e9\u0001"+ + "\u0000\u0000\u0000\u04ea\u04eb\u0001\u0000\u0000\u0000\u04eb\u00bf\u0001"+ + "\u0000\u0000\u0000\u04ec\u04ed\u0003\u00e4r\u0000\u04ed\u00c1\u0001\u0000"+ + "\u0000\u0000\u04ee\u04f2\u0005?\u0000\u0000\u04ef\u04f1\u0003b1\u0000"+ + "\u04f0\u04ef\u0001\u0000\u0000\u0000\u04f1\u04f4\u0001\u0000\u0000\u0000"+ + "\u04f2\u04f0\u0001\u0000\u0000\u0000\u04f2\u04f3\u0001\u0000\u0000\u0000"+ + "\u04f3\u00c3\u0001\u0000\u0000\u0000\u04f4\u04f2\u0001\u0000\u0000\u0000"+ + "\u04f5\u04f8\u0003\u00c6c\u0000\u04f6\u04f8\u0003\u00d8l\u0000\u04f7\u04f5"+ + "\u0001\u0000\u0000\u0000\u04f7\u04f6\u0001\u0000\u0000\u0000\u04f8\u00c5"+ + "\u0001\u0000\u0000\u0000\u04f9\u04fb\u0003\u00c8d\u0000\u04fa\u04f9\u0001"+ + "\u0000\u0000\u0000\u04fb\u04fe\u0001\u0000\u0000\u0000\u04fc\u04fa\u0001"+ + "\u0000\u0000\u0000\u04fc\u04fd\u0001\u0000\u0000\u0000\u04fd\u04ff\u0001"+ + "\u0000\u0000\u0000\u04fe\u04fc\u0001\u0000\u0000\u0000\u04ff\u0500\u0005"+ + "\u001c\u0000\u0000\u0500\u0502\u0005f\u0000\u0000\u0501\u0503\u0003V+"+ + "\u0000\u0502\u0501\u0001\u0000\u0000\u0000\u0502\u0503\u0001\u0000\u0000"+ + "\u0000\u0503\u0505\u0001\u0000\u0000\u0000\u0504\u0506\u0003\u00cae\u0000"+ + "\u0505\u0504\u0001\u0000\u0000\u0000\u0505\u0506\u0001\u0000\u0000\u0000"+ + "\u0506\u0507\u0001\u0000\u0000\u0000\u0507\u0508\u0003\u00ccf\u0000\u0508"+ + "\u00c7\u0001\u0000\u0000\u0000\u0509\u0511\u0003\u00e4r\u0000\u050a\u0511"+ + "\u0005#\u0000\u0000\u050b\u0511\u0005\"\u0000\u0000\u050c\u0511\u0005"+ + "!\u0000\u0000\u050d\u0511\u0005\u0001\u0000\u0000\u050e\u0511\u0005&\u0000"+ + "\u0000\u050f\u0511\u0005\'\u0000\u0000\u0510\u0509\u0001\u0000\u0000\u0000"+ + "\u0510\u050a\u0001\u0000\u0000\u0000\u0510\u050b\u0001\u0000\u0000\u0000"+ + "\u0510\u050c\u0001\u0000\u0000\u0000\u0510\u050d\u0001\u0000\u0000\u0000"+ + "\u0510\u050e\u0001\u0000\u0000\u0000\u0510\u050f\u0001\u0000\u0000\u0000"+ + "\u0511\u00c9\u0001\u0000\u0000\u0000\u0512\u0513\u0005\u0011\u0000\u0000"+ + "\u0513\u0514\u0003^/\u0000\u0514\u00cb\u0001\u0000\u0000\u0000\u0515\u0519"+ + "\u0005;\u0000\u0000\u0516\u0518\u0003\u00ceg\u0000\u0517\u0516\u0001\u0000"+ + "\u0000\u0000\u0518\u051b\u0001\u0000\u0000\u0000\u0519\u0517\u0001\u0000"+ + "\u0000\u0000\u0519\u051a\u0001\u0000\u0000\u0000\u051a\u051c\u0001\u0000"+ + "\u0000\u0000\u051b\u0519\u0001\u0000\u0000\u0000\u051c\u051d\u0005<\u0000"+ + "\u0000\u051d\u00cd\u0001\u0000\u0000\u0000\u051e\u0524\u0003\u00d0h\u0000"+ + "\u051f\u0524\u0003\u00d4j\u0000\u0520\u0524\u0003P(\u0000\u0521\u0524"+ + "\u0003\u00c4b\u0000\u0522\u0524\u0005?\u0000\u0000\u0523\u051e\u0001\u0000"+ + "\u0000\u0000\u0523\u051f\u0001\u0000\u0000\u0000\u0523\u0520\u0001\u0000"+ + "\u0000\u0000\u0523\u0521\u0001\u0000\u0000\u0000\u0523\u0522\u0001\u0000"+ + "\u0000\u0000\u0524\u00cf\u0001\u0000\u0000\u0000\u0525\u0527\u0003\u00d2"+ + "i\u0000\u0526\u0525\u0001\u0000\u0000\u0000\u0527\u052a\u0001\u0000\u0000"+ + "\u0000\u0528\u0526\u0001\u0000\u0000\u0000\u0528\u0529\u0001\u0000\u0000"+ + "\u0000\u0529\u052b\u0001\u0000\u0000\u0000\u052a\u0528\u0001\u0000\u0000"+ + "\u0000\u052b\u052c\u0003r9\u0000\u052c\u052d\u0003j5\u0000\u052d\u052e"+ + "\u0005?\u0000\u0000\u052e\u00d1\u0001\u0000\u0000\u0000\u052f\u0534\u0003"+ + "\u00e4r\u0000\u0530\u0534\u0005#\u0000\u0000\u0531\u0534\u0005&\u0000"+ + "\u0000\u0532\u0534\u0005\u0012\u0000\u0000\u0533\u052f\u0001\u0000\u0000"+ + "\u0000\u0533\u0530\u0001\u0000\u0000\u0000\u0533\u0531\u0001\u0000\u0000"+ + "\u0000\u0533\u0532\u0001\u0000\u0000\u0000\u0534\u00d3\u0001\u0000\u0000"+ + "\u0000\u0535\u0537\u0003\u00d6k\u0000\u0536\u0535\u0001\u0000\u0000\u0000"+ + "\u0537\u053a\u0001\u0000\u0000\u0000\u0538\u0536\u0001\u0000\u0000\u0000"+ + "\u0538\u0539\u0001\u0000\u0000\u0000\u0539\u053b\u0001\u0000\u0000\u0000"+ + "\u053a\u0538\u0001\u0000\u0000\u0000\u053b\u053c\u0003\u008eG\u0000\u053c"+ + "\u053d\u0003\u00a6S\u0000\u053d\u00d5\u0001\u0000\u0000\u0000\u053e\u0545"+ + "\u0003\u00e4r\u0000\u053f\u0545\u0005#\u0000\u0000\u0540\u0545\u0005\u0001"+ + "\u0000\u0000\u0541\u0545\u0005\f\u0000\u0000\u0542\u0545\u0005&\u0000"+ + "\u0000\u0543\u0545\u0005\'\u0000\u0000\u0544\u053e\u0001\u0000\u0000\u0000"+ + "\u0544\u053f\u0001\u0000\u0000\u0000\u0544\u0540\u0001\u0000\u0000\u0000"+ + "\u0544\u0541\u0001\u0000\u0000\u0000\u0544\u0542\u0001\u0000\u0000\u0000"+ + "\u0544\u0543\u0001\u0000\u0000\u0000\u0545\u00d7\u0001\u0000\u0000\u0000"+ + "\u0546\u0548\u0003\u00c8d\u0000\u0547\u0546\u0001\u0000\u0000\u0000\u0548"+ + "\u054b\u0001\u0000\u0000\u0000\u0549\u0547\u0001\u0000\u0000\u0000\u0549"+ + "\u054a\u0001\u0000\u0000\u0000\u054a\u054c\u0001\u0000\u0000\u0000\u054b"+ + "\u0549\u0001\u0000\u0000\u0000\u054c\u054d\u0005g\u0000\u0000\u054d\u054e"+ + "\u0005\u001c\u0000\u0000\u054e\u054f\u0005f\u0000\u0000\u054f\u0550\u0003"+ + "\u00dam\u0000\u0550\u00d9\u0001\u0000\u0000\u0000\u0551\u0555\u0005;\u0000"+ + "\u0000\u0552\u0554\u0003\u00dcn\u0000\u0553\u0552\u0001\u0000\u0000\u0000"+ + "\u0554\u0557\u0001\u0000\u0000\u0000\u0555\u0553\u0001\u0000\u0000\u0000"+ + "\u0555\u0556\u0001\u0000\u0000\u0000\u0556\u0558\u0001\u0000\u0000\u0000"+ + "\u0557\u0555\u0001\u0000\u0000\u0000\u0558\u0559\u0005<\u0000\u0000\u0559"+ + "\u00db\u0001\u0000\u0000\u0000\u055a\u0560\u0003\u00deo\u0000\u055b\u0560"+ + "\u0003\u00d0h\u0000\u055c\u0560\u0003P(\u0000\u055d\u0560\u0003\u00c4"+ + "b\u0000\u055e\u0560\u0005?\u0000\u0000\u055f\u055a\u0001\u0000\u0000\u0000"+ + "\u055f\u055b\u0001\u0000\u0000\u0000\u055f\u055c\u0001\u0000\u0000\u0000"+ + "\u055f\u055d\u0001\u0000\u0000\u0000\u055f\u055e\u0001\u0000\u0000\u0000"+ + "\u0560\u00dd\u0001\u0000\u0000\u0000\u0561\u0563\u0003\u00e0p\u0000\u0562"+ + "\u0561\u0001\u0000\u0000\u0000\u0563\u0566\u0001\u0000\u0000\u0000\u0564"+ + "\u0562\u0001\u0000\u0000\u0000\u0564\u0565\u0001\u0000\u0000\u0000\u0565"+ + "\u0567\u0001\u0000\u0000\u0000\u0566\u0564\u0001\u0000\u0000\u0000\u0567"+ + "\u0568\u0003r9\u0000\u0568\u0569\u0005f\u0000\u0000\u0569\u056a\u0005"+ + "9\u0000\u0000\u056a\u056c\u0005:\u0000\u0000\u056b\u056d\u0003\u001e\u000f"+ + "\u0000\u056c\u056b\u0001\u0000\u0000\u0000\u056c\u056d\u0001\u0000\u0000"+ + "\u0000\u056d\u056f\u0001\u0000\u0000\u0000\u056e\u0570\u0003\u00e2q\u0000"+ + "\u056f\u056e\u0001\u0000\u0000\u0000\u056f\u0570\u0001\u0000\u0000\u0000"+ + "\u0570\u0571\u0001\u0000\u0000\u0000\u0571\u0572\u0005?\u0000\u0000\u0572"+ + "\u00df\u0001\u0000\u0000\u0000\u0573\u0577\u0003\u00e4r\u0000\u0574\u0577"+ + "\u0005#\u0000\u0000\u0575\u0577\u0005\u0001\u0000\u0000\u0576\u0573\u0001"+ + "\u0000\u0000\u0000\u0576\u0574\u0001\u0000\u0000\u0000\u0576\u0575\u0001"+ + "\u0000\u0000\u0000\u0577\u00e1\u0001\u0000\u0000\u0000\u0578\u0579\u0005"+ + "\f\u0000\u0000\u0579\u057a\u0003\u00ecv\u0000\u057a\u00e3\u0001\u0000"+ + "\u0000\u0000\u057b\u057f\u0003\u00e6s\u0000\u057c\u057f\u0003\u00f2y\u0000"+ + "\u057d\u057f\u0003\u00f4z\u0000\u057e\u057b\u0001\u0000\u0000\u0000\u057e"+ + "\u057c\u0001\u0000\u0000\u0000\u057e\u057d\u0001\u0000\u0000\u0000\u057f"+ + "\u00e5\u0001\u0000\u0000\u0000\u0580\u0581\u0005g\u0000\u0000\u0581\u0582"+ + "\u00034\u001a\u0000\u0582\u0584\u00059\u0000\u0000\u0583\u0585\u0003\u00e8"+ + "t\u0000\u0584\u0583\u0001\u0000\u0000\u0000\u0584\u0585\u0001\u0000\u0000"+ + "\u0000\u0585\u0586\u0001\u0000\u0000\u0000\u0586\u0587\u0005:\u0000\u0000"+ + "\u0587\u00e7\u0001\u0000\u0000\u0000\u0588\u058d\u0003\u00eau\u0000\u0589"+ + "\u058a\u0005@\u0000\u0000\u058a\u058c\u0003\u00eau\u0000\u058b\u0589\u0001"+ + "\u0000\u0000\u0000\u058c\u058f\u0001\u0000\u0000\u0000\u058d\u058b\u0001"+ + "\u0000\u0000\u0000\u058d\u058e\u0001\u0000\u0000\u0000\u058e\u00e9\u0001"+ + "\u0000\u0000\u0000\u058f\u058d\u0001\u0000\u0000\u0000\u0590\u0591\u0005"+ + "f\u0000\u0000\u0591\u0592\u0005B\u0000\u0000\u0592\u0593\u0003\u00ecv"+ + "\u0000\u0593\u00eb\u0001\u0000\u0000\u0000\u0594\u0598\u0003\u01ae\u00d7"+ + "\u0000\u0595\u0598\u0003\u00eew\u0000\u0596\u0598\u0003\u00e4r\u0000\u0597"+ + "\u0594\u0001\u0000\u0000\u0000\u0597\u0595\u0001\u0000\u0000\u0000\u0597"+ + "\u0596\u0001\u0000\u0000\u0000\u0598\u00ed\u0001\u0000\u0000\u0000\u0599"+ + "\u059b\u0005;\u0000\u0000\u059a\u059c\u0003\u00f0x\u0000\u059b\u059a\u0001"+ + "\u0000\u0000\u0000\u059b\u059c\u0001\u0000\u0000\u0000\u059c\u059e\u0001"+ + "\u0000\u0000\u0000\u059d\u059f\u0005@\u0000\u0000\u059e\u059d\u0001\u0000"+ + "\u0000\u0000\u059e\u059f\u0001\u0000\u0000\u0000\u059f\u05a0\u0001\u0000"+ + "\u0000\u0000\u05a0\u05a1\u0005<\u0000\u0000\u05a1\u00ef\u0001\u0000\u0000"+ + "\u0000\u05a2\u05a7\u0003\u00ecv\u0000\u05a3\u05a4\u0005@\u0000\u0000\u05a4"+ + "\u05a6\u0003\u00ecv\u0000\u05a5\u05a3\u0001\u0000\u0000\u0000\u05a6\u05a9"+ + "\u0001\u0000\u0000\u0000\u05a7\u05a5\u0001\u0000\u0000\u0000\u05a7\u05a8"+ + "\u0001\u0000\u0000\u0000\u05a8\u00f1\u0001\u0000\u0000\u0000\u05a9\u05a7"+ + "\u0001\u0000\u0000\u0000\u05aa\u05ab\u0005g\u0000\u0000\u05ab\u05ac\u0003"+ + "4\u001a\u0000\u05ac\u00f3\u0001\u0000\u0000\u0000\u05ad\u05ae\u0005g\u0000"+ + "\u0000\u05ae\u05af\u00034\u001a\u0000\u05af\u05b0\u00059\u0000\u0000\u05b0"+ + "\u05b1\u0003\u00ecv\u0000\u05b1\u05b2\u0005:\u0000\u0000\u05b2\u00f5\u0001"+ + "\u0000\u0000\u0000\u05b3\u05b5\u0005;\u0000\u0000\u05b4\u05b6\u0003\u00f8"+ + "|\u0000\u05b5\u05b4\u0001\u0000\u0000\u0000\u05b5\u05b6\u0001\u0000\u0000"+ + "\u0000\u05b6\u05b8\u0001\u0000\u0000\u0000\u05b7\u05b9\u0005@\u0000\u0000"+ + "\u05b8\u05b7\u0001\u0000\u0000\u0000\u05b8\u05b9\u0001\u0000\u0000\u0000"+ + "\u05b9\u05ba\u0001\u0000\u0000\u0000\u05ba\u05bb\u0005<\u0000\u0000\u05bb"+ + "\u00f7\u0001\u0000\u0000\u0000\u05bc\u05c1\u0003p8\u0000\u05bd\u05be\u0005"+ + "@\u0000\u0000\u05be\u05c0\u0003p8\u0000\u05bf\u05bd\u0001\u0000\u0000"+ + "\u0000\u05c0\u05c3\u0001\u0000\u0000\u0000\u05c1\u05bf\u0001\u0000\u0000"+ + "\u0000\u05c1\u05c2\u0001\u0000\u0000\u0000\u05c2\u00f9\u0001\u0000\u0000"+ + "\u0000\u05c3\u05c1\u0001\u0000\u0000\u0000\u05c4\u05c6\u0005;\u0000\u0000"+ + "\u05c5\u05c7\u0003\u00fc~\u0000\u05c6\u05c5\u0001\u0000\u0000\u0000\u05c6"+ + "\u05c7\u0001\u0000\u0000\u0000\u05c7\u05c8\u0001\u0000\u0000\u0000\u05c8"+ + "\u05c9\u0005<\u0000\u0000\u05c9\u00fb\u0001\u0000\u0000\u0000\u05ca\u05cc"+ + "\u0003\u00fe\u007f\u0000\u05cb\u05ca\u0001\u0000\u0000\u0000\u05cc\u05cd"+ + "\u0001\u0000\u0000\u0000\u05cd\u05cb\u0001\u0000\u0000\u0000\u05cd\u05ce"+ + "\u0001\u0000\u0000\u0000\u05ce\u00fd\u0001\u0000\u0000\u0000\u05cf\u05d3"+ + "\u0003\u0100\u0080\u0000\u05d0\u05d3\u0003P(\u0000\u05d1\u05d3\u0003\u0104"+ + "\u0082\u0000\u05d2\u05cf\u0001\u0000\u0000\u0000\u05d2\u05d0\u0001\u0000"+ + "\u0000\u0000\u05d2\u05d1\u0001\u0000\u0000\u0000\u05d3\u00ff\u0001\u0000"+ + "\u0000\u0000\u05d4\u05d5\u0003\u0102\u0081\u0000\u05d5\u05d6\u0005?\u0000"+ + "\u0000\u05d6\u0101\u0001\u0000\u0000\u0000\u05d7\u05d9\u0003\u009aM\u0000"+ + "\u05d8\u05d7\u0001\u0000\u0000\u0000\u05d9\u05dc\u0001\u0000\u0000\u0000"+ + "\u05da\u05d8\u0001\u0000\u0000\u0000\u05da\u05db\u0001\u0000\u0000\u0000"+ + "\u05db\u05dd\u0001\u0000\u0000\u0000\u05dc\u05da\u0001\u0000\u0000\u0000"+ + "\u05dd\u05de\u0003r9\u0000\u05de\u05df\u0003j5\u0000\u05df\u0103\u0001"+ + "\u0000\u0000\u0000\u05e0\u05e7\u0003\u0108\u0084\u0000\u05e1\u05e7\u0003"+ + "\u010c\u0086\u0000\u05e2\u05e7\u0003\u0114\u008a\u0000\u05e3\u05e7\u0003"+ + "\u0116\u008b\u0000\u05e4\u05e7\u0003\u0128\u0094\u0000\u05e5\u05e7\u0003"+ + "\u012e\u0097\u0000\u05e6\u05e0\u0001\u0000\u0000\u0000\u05e6\u05e1\u0001"+ + "\u0000\u0000\u0000\u05e6\u05e2\u0001\u0000\u0000\u0000\u05e6\u05e3\u0001"+ + "\u0000\u0000\u0000\u05e6\u05e4\u0001\u0000\u0000\u0000\u05e6\u05e5\u0001"+ + "\u0000\u0000\u0000\u05e7\u0105\u0001\u0000\u0000\u0000\u05e8\u05ee\u0003"+ + "\u0108\u0084\u0000\u05e9\u05ee\u0003\u010e\u0087\u0000\u05ea\u05ee\u0003"+ + "\u0118\u008c\u0000\u05eb\u05ee\u0003\u012a\u0095\u0000\u05ec\u05ee\u0003"+ + "\u0130\u0098\u0000\u05ed\u05e8\u0001\u0000\u0000\u0000\u05ed\u05e9\u0001"+ + "\u0000\u0000\u0000\u05ed\u05ea\u0001\u0000\u0000\u0000\u05ed\u05eb\u0001"+ + "\u0000\u0000\u0000\u05ed\u05ec\u0001\u0000\u0000\u0000\u05ee\u0107\u0001"+ + "\u0000\u0000\u0000\u05ef\u05fc\u0003\u00fa}\u0000\u05f0\u05fc\u0003\u010a"+ + "\u0085\u0000\u05f1\u05fc\u0003\u0110\u0088\u0000\u05f2\u05fc\u0003\u011a"+ + "\u008d\u0000\u05f3\u05fc\u0003\u011c\u008e\u0000\u05f4\u05fc\u0003\u012c"+ + "\u0096\u0000\u05f5\u05fc\u0003\u0140\u00a0\u0000\u05f6\u05fc\u0003\u0142"+ + "\u00a1\u0000\u05f7\u05fc\u0003\u0144\u00a2\u0000\u05f8\u05fc\u0003\u0148"+ + "\u00a4\u0000\u05f9\u05fc\u0003\u0146\u00a3\u0000\u05fa\u05fc\u0003\u014a"+ + "\u00a5\u0000\u05fb\u05ef\u0001\u0000\u0000\u0000\u05fb\u05f0\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f1\u0001\u0000\u0000\u0000\u05fb\u05f2\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f3\u0001\u0000\u0000\u0000\u05fb\u05f4\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f5\u0001\u0000\u0000\u0000\u05fb\u05f6\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f7\u0001\u0000\u0000\u0000\u05fb\u05f8\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f9\u0001\u0000\u0000\u0000\u05fb\u05fa\u0001\u0000"+ + "\u0000\u0000\u05fc\u0109\u0001\u0000\u0000\u0000\u05fd\u05fe\u0005?\u0000"+ + "\u0000\u05fe\u010b\u0001\u0000\u0000\u0000\u05ff\u0600\u0005f\u0000\u0000"+ + "\u0600\u0601\u0005H\u0000\u0000\u0601\u0602\u0003\u0104\u0082\u0000\u0602"+ + "\u010d\u0001\u0000\u0000\u0000\u0603\u0604\u0005f\u0000\u0000\u0604\u0605"+ + "\u0005H\u0000\u0000\u0605\u0606\u0003\u0106\u0083\u0000\u0606\u010f\u0001"+ + "\u0000\u0000\u0000\u0607\u0608\u0003\u0112\u0089\u0000\u0608\u0609\u0005"+ + "?\u0000\u0000\u0609\u0111\u0001\u0000\u0000\u0000\u060a\u0612\u0003\u01a8"+ + "\u00d4\u0000\u060b\u0612\u0003\u01c6\u00e3\u0000\u060c\u0612\u0003\u01c8"+ + "\u00e4\u0000\u060d\u0612\u0003\u01ce\u00e7\u0000\u060e\u0612\u0003\u01d2"+ + "\u00e9\u0000\u060f\u0612\u0003\u0186\u00c3\u0000\u0610\u0612\u0003\u0172"+ + "\u00b9\u0000\u0611\u060a\u0001\u0000\u0000\u0000\u0611\u060b\u0001\u0000"+ + "\u0000\u0000\u0611\u060c\u0001\u0000\u0000\u0000\u0611\u060d\u0001\u0000"+ + "\u0000\u0000\u0611\u060e\u0001\u0000\u0000\u0000\u0611\u060f\u0001\u0000"+ + "\u0000\u0000\u0611\u0610\u0001\u0000\u0000\u0000\u0612\u0113\u0001\u0000"+ + "\u0000\u0000\u0613\u0614\u0005\u0016\u0000\u0000\u0614\u0615\u00059\u0000"+ + "\u0000\u0615\u0616\u0003\u019c\u00ce\u0000\u0616\u0617\u0005:\u0000\u0000"+ + "\u0617\u0618\u0003\u0104\u0082\u0000\u0618\u0115\u0001\u0000\u0000\u0000"+ + "\u0619\u061a\u0005\u0016\u0000\u0000\u061a\u061b\u00059\u0000\u0000\u061b"+ + "\u061c\u0003\u019c\u00ce\u0000\u061c\u061d\u0005:\u0000\u0000\u061d\u061e"+ + "\u0003\u0106\u0083\u0000\u061e\u061f\u0005\u000f\u0000\u0000\u061f\u0620"+ + "\u0003\u0104\u0082\u0000\u0620\u0117\u0001\u0000\u0000\u0000\u0621\u0622"+ + "\u0005\u0016\u0000\u0000\u0622\u0623\u00059\u0000\u0000\u0623\u0624\u0003"+ + "\u019c\u00ce\u0000\u0624\u0625\u0005:\u0000\u0000\u0625\u0626\u0003\u0106"+ + "\u0083\u0000\u0626\u0627\u0005\u000f\u0000\u0000\u0627\u0628\u0003\u0106"+ + "\u0083\u0000\u0628\u0119\u0001\u0000\u0000\u0000\u0629\u062a\u0005\u0002"+ + "\u0000\u0000\u062a\u062b\u0003\u019c\u00ce\u0000\u062b\u062c\u0005?\u0000"+ + "\u0000\u062c\u0634\u0001\u0000\u0000\u0000\u062d\u062e\u0005\u0002\u0000"+ + "\u0000\u062e\u062f\u0003\u019c\u00ce\u0000\u062f\u0630\u0005H\u0000\u0000"+ + "\u0630\u0631\u0003\u019c\u00ce\u0000\u0631\u0632\u0005?\u0000\u0000\u0632"+ + "\u0634\u0001\u0000\u0000\u0000\u0633\u0629\u0001\u0000\u0000\u0000\u0633"+ + "\u062d\u0001\u0000\u0000\u0000\u0634\u011b\u0001\u0000\u0000\u0000\u0635"+ + "\u0636\u0005)\u0000\u0000\u0636\u0637\u00059\u0000\u0000\u0637\u0638\u0003"+ + "\u019c\u00ce\u0000\u0638\u0639\u0005:\u0000\u0000\u0639\u063a\u0003\u011e"+ + "\u008f\u0000\u063a\u011d\u0001\u0000\u0000\u0000\u063b\u063f\u0005;\u0000"+ + "\u0000\u063c\u063e\u0003\u0120\u0090\u0000\u063d\u063c\u0001\u0000\u0000"+ + "\u0000\u063e\u0641\u0001\u0000\u0000\u0000\u063f\u063d\u0001\u0000\u0000"+ + "\u0000\u063f\u0640\u0001\u0000\u0000\u0000\u0640\u0645\u0001\u0000\u0000"+ + "\u0000\u0641\u063f\u0001\u0000\u0000\u0000\u0642\u0644\u0003\u0124\u0092"+ + "\u0000\u0643\u0642\u0001\u0000\u0000\u0000\u0644\u0647\u0001\u0000\u0000"+ + "\u0000\u0645\u0643\u0001\u0000\u0000\u0000\u0645\u0646\u0001\u0000\u0000"+ + "\u0000\u0646\u0648\u0001\u0000\u0000\u0000\u0647\u0645\u0001\u0000\u0000"+ + "\u0000\u0648\u0649\u0005<\u0000\u0000\u0649\u011f\u0001\u0000\u0000\u0000"+ + "\u064a\u064b\u0003\u0122\u0091\u0000\u064b\u064c\u0003\u00fc~\u0000\u064c"+ + "\u0121\u0001\u0000\u0000\u0000\u064d\u0651\u0003\u0124\u0092\u0000\u064e"+ + "\u0650\u0003\u0124\u0092\u0000\u064f\u064e\u0001\u0000\u0000\u0000\u0650"+ + "\u0653\u0001\u0000\u0000\u0000\u0651\u064f\u0001\u0000\u0000\u0000\u0651"+ + "\u0652\u0001\u0000\u0000\u0000\u0652\u0123\u0001\u0000\u0000\u0000\u0653"+ + "\u0651\u0001\u0000\u0000\u0000\u0654\u0655\u0005\u0006\u0000\u0000\u0655"+ + "\u0656\u0003\u019a\u00cd\u0000\u0656\u0657\u0005H\u0000\u0000\u0657\u065f"+ + "\u0001\u0000\u0000\u0000\u0658\u0659\u0005\u0006\u0000\u0000\u0659\u065a"+ + "\u0003\u0126\u0093\u0000\u065a\u065b\u0005H\u0000\u0000\u065b\u065f\u0001"+ + "\u0000\u0000\u0000\u065c\u065d\u0005\f\u0000\u0000\u065d\u065f\u0005H"+ + "\u0000\u0000\u065e\u0654\u0001\u0000\u0000\u0000\u065e\u0658\u0001\u0000"+ + "\u0000\u0000\u065e\u065c\u0001\u0000\u0000\u0000\u065f\u0125\u0001\u0000"+ + "\u0000\u0000\u0660\u0661\u0005f\u0000\u0000\u0661\u0127\u0001\u0000\u0000"+ + "\u0000\u0662\u0663\u00052\u0000\u0000\u0663\u0664\u00059\u0000\u0000\u0664"+ + "\u0665\u0003\u019c\u00ce\u0000\u0665\u0666\u0005:\u0000\u0000\u0666\u0667"+ + "\u0003\u0104\u0082\u0000\u0667\u0129\u0001\u0000\u0000\u0000\u0668\u0669"+ + "\u00052\u0000\u0000\u0669\u066a\u00059\u0000\u0000\u066a\u066b\u0003\u019c"+ + "\u00ce\u0000\u066b\u066c\u0005:\u0000\u0000\u066c\u066d\u0003\u0106\u0083"+ + "\u0000\u066d\u012b\u0001\u0000\u0000\u0000\u066e\u066f\u0005\r\u0000\u0000"+ + "\u066f\u0670\u0003\u0104\u0082\u0000\u0670\u0671\u00052\u0000\u0000\u0671"+ + "\u0672\u00059\u0000\u0000\u0672\u0673\u0003\u019c\u00ce\u0000\u0673\u0674"+ + "\u0005:\u0000\u0000\u0674\u0675\u0005?\u0000\u0000\u0675\u012d\u0001\u0000"+ + "\u0000\u0000\u0676\u0679\u0003\u0132\u0099\u0000\u0677\u0679\u0003\u013c"+ + "\u009e\u0000\u0678\u0676\u0001\u0000\u0000\u0000\u0678\u0677\u0001\u0000"+ + "\u0000\u0000\u0679\u012f\u0001\u0000\u0000\u0000\u067a\u067d\u0003\u0134"+ + "\u009a\u0000\u067b\u067d\u0003\u013e\u009f\u0000\u067c\u067a\u0001\u0000"+ + "\u0000\u0000\u067c\u067b\u0001\u0000\u0000\u0000\u067d\u0131\u0001\u0000"+ + "\u0000\u0000\u067e\u067f\u0005\u0015\u0000\u0000\u067f\u0681\u00059\u0000"+ + "\u0000\u0680\u0682\u0003\u0136\u009b\u0000\u0681\u0680\u0001\u0000\u0000"+ + "\u0000\u0681\u0682\u0001\u0000\u0000\u0000\u0682\u0683\u0001\u0000\u0000"+ + "\u0000\u0683\u0685\u0005?\u0000\u0000\u0684\u0686\u0003\u019c\u00ce\u0000"+ + "\u0685\u0684\u0001\u0000\u0000\u0000\u0685\u0686\u0001\u0000\u0000\u0000"+ + "\u0686\u0687\u0001\u0000\u0000\u0000\u0687\u0689\u0005?\u0000\u0000\u0688"+ + "\u068a\u0003\u0138\u009c\u0000\u0689\u0688\u0001\u0000\u0000\u0000\u0689"+ + "\u068a\u0001\u0000\u0000\u0000\u068a\u068b\u0001\u0000\u0000\u0000\u068b"+ + "\u068c\u0005:\u0000\u0000\u068c\u068d\u0003\u0104\u0082\u0000\u068d\u0133"+ + "\u0001\u0000\u0000\u0000\u068e\u068f\u0005\u0015\u0000\u0000\u068f\u0691"+ + "\u00059\u0000\u0000\u0690\u0692\u0003\u0136\u009b\u0000\u0691\u0690\u0001"+ + "\u0000\u0000\u0000\u0691\u0692\u0001\u0000\u0000\u0000\u0692\u0693\u0001"+ + "\u0000\u0000\u0000\u0693\u0695\u0005?\u0000\u0000\u0694\u0696\u0003\u019c"+ + "\u00ce\u0000\u0695\u0694\u0001\u0000\u0000\u0000\u0695\u0696\u0001\u0000"+ + "\u0000\u0000\u0696\u0697\u0001\u0000\u0000\u0000\u0697\u0699\u0005?\u0000"+ + "\u0000\u0698\u069a\u0003\u0138\u009c\u0000\u0699\u0698\u0001\u0000\u0000"+ + "\u0000\u0699\u069a\u0001\u0000\u0000\u0000\u069a\u069b\u0001\u0000\u0000"+ + "\u0000\u069b\u069c\u0005:\u0000\u0000\u069c\u069d\u0003\u0106\u0083\u0000"+ + "\u069d\u0135\u0001\u0000\u0000\u0000\u069e\u06a1\u0003\u013a\u009d\u0000"+ + "\u069f\u06a1\u0003\u0102\u0081\u0000\u06a0\u069e\u0001\u0000\u0000\u0000"+ + "\u06a0\u069f\u0001\u0000\u0000\u0000\u06a1\u0137\u0001\u0000\u0000\u0000"+ + "\u06a2\u06a3\u0003\u013a\u009d\u0000\u06a3\u0139\u0001\u0000\u0000\u0000"+ + "\u06a4\u06a9\u0003\u0112\u0089\u0000\u06a5\u06a6\u0005@\u0000\u0000\u06a6"+ + "\u06a8\u0003\u0112\u0089\u0000\u06a7\u06a5\u0001\u0000\u0000\u0000\u06a8"+ + "\u06ab\u0001\u0000\u0000\u0000\u06a9\u06a7\u0001\u0000\u0000\u0000\u06a9"+ + "\u06aa\u0001\u0000\u0000\u0000\u06aa\u013b\u0001\u0000\u0000\u0000\u06ab"+ + "\u06a9\u0001\u0000\u0000\u0000\u06ac\u06ad\u0005\u0015\u0000\u0000\u06ad"+ + "\u06b1\u00059\u0000\u0000\u06ae\u06b0\u0003\u009aM\u0000\u06af\u06ae\u0001"+ + "\u0000\u0000\u0000\u06b0\u06b3\u0001\u0000\u0000\u0000\u06b1\u06af\u0001"+ + "\u0000\u0000\u0000\u06b1\u06b2\u0001\u0000\u0000\u0000\u06b2\u06b4\u0001"+ + "\u0000\u0000\u0000\u06b3\u06b1\u0001\u0000\u0000\u0000\u06b4\u06b5\u0003"+ + "r9\u0000\u06b5\u06b6\u0003n7\u0000\u06b6\u06b7\u0005H\u0000\u0000\u06b7"+ + "\u06b8\u0003\u019c\u00ce\u0000\u06b8\u06b9\u0005:\u0000\u0000\u06b9\u06ba"+ + "\u0003\u0104\u0082\u0000\u06ba\u013d\u0001\u0000\u0000\u0000\u06bb\u06bc"+ + "\u0005\u0015\u0000\u0000\u06bc\u06c0\u00059\u0000\u0000\u06bd\u06bf\u0003"+ + "\u009aM\u0000\u06be\u06bd\u0001\u0000\u0000\u0000\u06bf\u06c2\u0001\u0000"+ + "\u0000\u0000\u06c0\u06be\u0001\u0000\u0000\u0000\u06c0\u06c1\u0001\u0000"+ + "\u0000\u0000\u06c1\u06c3\u0001\u0000\u0000\u0000\u06c2\u06c0\u0001\u0000"+ + "\u0000\u0000\u06c3\u06c4\u0003r9\u0000\u06c4\u06c5\u0003n7\u0000\u06c5"+ + "\u06c6\u0005H\u0000\u0000\u06c6\u06c7\u0003\u019c\u00ce\u0000\u06c7\u06c8"+ + "\u0005:\u0000\u0000\u06c8\u06c9\u0003\u0106\u0083\u0000\u06c9\u013f\u0001"+ + "\u0000\u0000\u0000\u06ca\u06cc\u0005\u0004\u0000\u0000\u06cb\u06cd\u0005"+ + "f\u0000\u0000\u06cc\u06cb\u0001\u0000\u0000\u0000\u06cc\u06cd\u0001\u0000"+ + "\u0000\u0000\u06cd\u06ce\u0001\u0000\u0000\u0000\u06ce\u06cf\u0005?\u0000"+ + "\u0000\u06cf\u0141\u0001\u0000\u0000\u0000\u06d0\u06d2\u0005\u000b\u0000"+ + "\u0000\u06d1\u06d3\u0005f\u0000\u0000\u06d2\u06d1\u0001\u0000\u0000\u0000"+ + "\u06d2\u06d3\u0001\u0000\u0000\u0000\u06d3\u06d4\u0001\u0000\u0000\u0000"+ + "\u06d4\u06d5\u0005?\u0000\u0000\u06d5\u0143\u0001\u0000\u0000\u0000\u06d6"+ + "\u06d8\u0005$\u0000\u0000\u06d7\u06d9\u0003\u019c\u00ce\u0000\u06d8\u06d7"+ + "\u0001\u0000\u0000\u0000\u06d8\u06d9\u0001\u0000\u0000\u0000\u06d9\u06da"+ + "\u0001\u0000\u0000\u0000\u06da\u06db\u0005?\u0000\u0000\u06db\u0145\u0001"+ + "\u0000\u0000\u0000\u06dc\u06dd\u0005,\u0000\u0000\u06dd\u06de\u0003\u019c"+ + "\u00ce\u0000\u06de\u06df\u0005?\u0000\u0000\u06df\u0147\u0001\u0000\u0000"+ + "\u0000\u06e0\u06e1\u0005*\u0000\u0000\u06e1\u06e2\u00059\u0000\u0000\u06e2"+ + "\u06e3\u0003\u019c\u00ce\u0000\u06e3\u06e4\u0005:\u0000\u0000\u06e4\u06e5"+ + "\u0003\u00fa}\u0000\u06e5\u0149\u0001\u0000\u0000\u0000\u06e6\u06e7\u0005"+ + "/\u0000\u0000\u06e7\u06e8\u0003\u00fa}\u0000\u06e8\u06e9\u0003\u014c\u00a6"+ + "\u0000\u06e9\u06f3\u0001\u0000\u0000\u0000\u06ea\u06eb\u0005/\u0000\u0000"+ + "\u06eb\u06ed\u0003\u00fa}\u0000\u06ec\u06ee\u0003\u014c\u00a6\u0000\u06ed"+ + "\u06ec\u0001\u0000\u0000\u0000\u06ed\u06ee\u0001\u0000\u0000\u0000\u06ee"+ + "\u06ef\u0001\u0000\u0000\u0000\u06ef\u06f0\u0003\u0154\u00aa\u0000\u06f0"+ + "\u06f3\u0001\u0000\u0000\u0000\u06f1\u06f3\u0003\u0156\u00ab\u0000\u06f2"+ + "\u06e6\u0001\u0000\u0000\u0000\u06f2\u06ea\u0001\u0000\u0000\u0000\u06f2"+ + "\u06f1\u0001\u0000\u0000\u0000\u06f3\u014b\u0001\u0000\u0000\u0000\u06f4"+ + "\u06f8\u0003\u014e\u00a7\u0000\u06f5\u06f7\u0003\u014e\u00a7\u0000\u06f6"+ + "\u06f5\u0001\u0000\u0000\u0000\u06f7\u06fa\u0001\u0000\u0000\u0000\u06f8"+ + "\u06f6\u0001\u0000\u0000\u0000\u06f8\u06f9\u0001\u0000\u0000\u0000\u06f9"+ + "\u014d\u0001\u0000\u0000\u0000\u06fa\u06f8\u0001\u0000\u0000\u0000\u06fb"+ + "\u06fc\u0005\u0007\u0000\u0000\u06fc\u06fd\u00059\u0000\u0000\u06fd\u06fe"+ + "\u0003\u0150\u00a8\u0000\u06fe\u06ff\u0005:\u0000\u0000\u06ff\u0700\u0003"+ + "\u00fa}\u0000\u0700\u014f\u0001\u0000\u0000\u0000\u0701\u0703\u0003\u009a"+ + "M\u0000\u0702\u0701\u0001\u0000\u0000\u0000\u0703\u0706\u0001\u0000\u0000"+ + "\u0000\u0704\u0702\u0001\u0000\u0000\u0000\u0704\u0705\u0001\u0000\u0000"+ + "\u0000\u0705\u0707\u0001\u0000\u0000\u0000\u0706\u0704\u0001\u0000\u0000"+ + "\u0000\u0707\u0708\u0003\u0152\u00a9\u0000\u0708\u0709\u0003n7\u0000\u0709"+ + "\u0151\u0001\u0000\u0000\u0000\u070a\u070f\u0003z=\u0000\u070b\u070c\u0005"+ + "V\u0000\u0000\u070c\u070e\u0003\u000e\u0007\u0000\u070d\u070b\u0001\u0000"+ + "\u0000\u0000\u070e\u0711\u0001\u0000\u0000\u0000\u070f\u070d\u0001\u0000"+ + "\u0000\u0000\u070f\u0710\u0001\u0000\u0000\u0000\u0710\u0153\u0001\u0000"+ + "\u0000\u0000\u0711\u070f\u0001\u0000\u0000\u0000\u0712\u0713\u0005\u0013"+ + "\u0000\u0000\u0713\u0714\u0003\u00fa}\u0000\u0714\u0155\u0001\u0000\u0000"+ + "\u0000\u0715\u0716\u0005/\u0000\u0000\u0716\u0717\u0003\u0158\u00ac\u0000"+ + "\u0717\u0719\u0003\u00fa}\u0000\u0718\u071a\u0003\u014c\u00a6\u0000\u0719"+ + "\u0718\u0001\u0000\u0000\u0000\u0719\u071a\u0001\u0000\u0000\u0000\u071a"+ + "\u071c\u0001\u0000\u0000\u0000\u071b\u071d\u0003\u0154\u00aa\u0000\u071c"+ + "\u071b\u0001\u0000\u0000\u0000\u071c\u071d\u0001\u0000\u0000\u0000\u071d"+ + "\u0157\u0001\u0000\u0000\u0000\u071e\u071f\u00059\u0000\u0000\u071f\u0721"+ + "\u0003\u015a\u00ad\u0000\u0720\u0722\u0005?\u0000\u0000\u0721\u0720\u0001"+ + "\u0000\u0000\u0000\u0721\u0722\u0001\u0000\u0000\u0000\u0722\u0723\u0001"+ + "\u0000\u0000\u0000\u0723\u0724\u0005:\u0000\u0000\u0724\u0159\u0001\u0000"+ + "\u0000\u0000\u0725\u072a\u0003\u015c\u00ae\u0000\u0726\u0727\u0005?\u0000"+ + "\u0000\u0727\u0729\u0003\u015c\u00ae\u0000\u0728\u0726\u0001\u0000\u0000"+ + "\u0000\u0729\u072c\u0001\u0000\u0000\u0000\u072a\u0728\u0001\u0000\u0000"+ + "\u0000\u072a\u072b\u0001\u0000\u0000\u0000\u072b\u015b\u0001\u0000\u0000"+ + "\u0000\u072c\u072a\u0001\u0000\u0000\u0000\u072d\u072f\u0003\u009aM\u0000"+ + "\u072e\u072d\u0001\u0000\u0000\u0000\u072f\u0732\u0001\u0000\u0000\u0000"+ + "\u0730\u072e\u0001\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000"+ + "\u0731\u0733\u0001\u0000\u0000\u0000\u0732\u0730\u0001\u0000\u0000\u0000"+ + "\u0733\u0734\u0003r9\u0000\u0734\u0735\u0003n7\u0000\u0735\u0736\u0005"+ + "B\u0000\u0000\u0736\u0737\u0003\u019c\u00ce\u0000\u0737\u015d\u0001\u0000"+ + "\u0000\u0000\u0738\u073b\u0003\u016c\u00b6\u0000\u0739\u073b\u0003\u0194"+ + "\u00ca\u0000\u073a\u0738\u0001\u0000\u0000\u0000\u073a\u0739\u0001\u0000"+ + "\u0000\u0000\u073b\u073f\u0001\u0000\u0000\u0000\u073c\u073e\u0003\u0166"+ + "\u00b3\u0000\u073d\u073c\u0001\u0000\u0000\u0000\u073e\u0741\u0001\u0000"+ + "\u0000\u0000\u073f\u073d\u0001\u0000\u0000\u0000\u073f\u0740\u0001\u0000"+ + "\u0000\u0000\u0740\u015f\u0001\u0000\u0000\u0000\u0741\u073f\u0001\u0000"+ + "\u0000\u0000\u0742\u0760\u0003\u0000\u0000\u0000\u0743\u0748\u00034\u001a"+ + "\u0000\u0744\u0745\u0005=\u0000\u0000\u0745\u0747\u0005>\u0000\u0000\u0746"+ + "\u0744\u0001\u0000\u0000\u0000\u0747\u074a\u0001\u0000\u0000\u0000\u0748"+ + "\u0746\u0001\u0000\u0000\u0000\u0748\u0749\u0001\u0000\u0000\u0000\u0749"+ + "\u074b\u0001\u0000\u0000\u0000\u074a\u0748\u0001\u0000\u0000\u0000\u074b"+ + "\u074c\u0005A\u0000\u0000\u074c\u074d\u0005\t\u0000\u0000\u074d\u0760"+ + "\u0001\u0000\u0000\u0000\u074e\u074f\u00050\u0000\u0000\u074f\u0750\u0005"+ + "A\u0000\u0000\u0750\u0760\u0005\t\u0000\u0000\u0751\u0760\u0005+\u0000"+ + "\u0000\u0752\u0753\u00034\u001a\u0000\u0753\u0754\u0005A\u0000\u0000\u0754"+ + "\u0755\u0005+\u0000\u0000\u0755\u0760\u0001\u0000\u0000\u0000\u0756\u0757"+ + "\u00059\u0000\u0000\u0757\u0758\u0003\u019c\u00ce\u0000\u0758\u0759\u0005"+ + ":\u0000\u0000\u0759\u0760\u0001\u0000\u0000\u0000\u075a\u0760\u0003\u0172"+ + "\u00b9\u0000\u075b\u0760\u0003\u017a\u00bd\u0000\u075c\u0760\u0003\u0180"+ + "\u00c0\u0000\u075d\u0760\u0003\u0186\u00c3\u0000\u075e\u0760\u0003\u018e"+ + "\u00c7\u0000\u075f\u0742\u0001\u0000\u0000\u0000\u075f\u0743\u0001\u0000"+ + "\u0000\u0000\u075f\u074e\u0001\u0000\u0000\u0000\u075f\u0751\u0001\u0000"+ + "\u0000\u0000\u075f\u0752\u0001\u0000\u0000\u0000\u075f\u0756\u0001\u0000"+ + "\u0000\u0000\u075f\u075a\u0001\u0000\u0000\u0000\u075f\u075b\u0001\u0000"+ + "\u0000\u0000\u075f\u075c\u0001\u0000\u0000\u0000\u075f\u075d\u0001\u0000"+ + "\u0000\u0000\u075f\u075e\u0001\u0000\u0000\u0000\u0760\u0161\u0001\u0000"+ + "\u0000\u0000\u0761\u0762\u0001\u0000\u0000\u0000\u0762\u0163\u0001\u0000"+ + "\u0000\u0000\u0763\u0780\u0003\u0000\u0000\u0000\u0764\u0769\u00034\u001a"+ + "\u0000\u0765\u0766\u0005=\u0000\u0000\u0766\u0768\u0005>\u0000\u0000\u0767"+ + "\u0765\u0001\u0000\u0000\u0000\u0768\u076b\u0001\u0000\u0000\u0000\u0769"+ + "\u0767\u0001\u0000\u0000\u0000\u0769\u076a\u0001\u0000\u0000\u0000\u076a"+ + "\u076c\u0001\u0000\u0000\u0000\u076b\u0769\u0001\u0000\u0000\u0000\u076c"+ + "\u076d\u0005A\u0000\u0000\u076d\u076e\u0005\t\u0000\u0000\u076e\u0780"+ + "\u0001\u0000\u0000\u0000\u076f\u0770\u00050\u0000\u0000\u0770\u0771\u0005"+ + "A\u0000\u0000\u0771\u0780\u0005\t\u0000\u0000\u0772\u0780\u0005+\u0000"+ + "\u0000\u0773\u0774\u00034\u001a\u0000\u0774\u0775\u0005A\u0000\u0000\u0775"+ + "\u0776\u0005+\u0000\u0000\u0776\u0780\u0001\u0000\u0000\u0000\u0777\u0778"+ + "\u00059\u0000\u0000\u0778\u0779\u0003\u019c\u00ce\u0000\u0779\u077a\u0005"+ + ":\u0000\u0000\u077a\u0780\u0001\u0000\u0000\u0000\u077b\u0780\u0003\u0172"+ + "\u00b9\u0000\u077c\u0780\u0003\u017a\u00bd\u0000\u077d\u0780\u0003\u0186"+ + "\u00c3\u0000\u077e\u0780\u0003\u018e\u00c7\u0000\u077f\u0763\u0001\u0000"+ + "\u0000\u0000\u077f\u0764\u0001\u0000\u0000\u0000\u077f\u076f\u0001\u0000"+ + "\u0000\u0000\u077f\u0772\u0001\u0000\u0000\u0000\u077f\u0773\u0001\u0000"+ + "\u0000\u0000\u077f\u0777\u0001\u0000\u0000\u0000\u077f\u077b\u0001\u0000"+ + "\u0000\u0000\u077f\u077c\u0001\u0000\u0000\u0000\u077f\u077d\u0001\u0000"+ + "\u0000\u0000\u077f\u077e\u0001\u0000\u0000\u0000\u0780\u0165\u0001\u0000"+ + "\u0000\u0000\u0781\u0787\u0003\u0174\u00ba\u0000\u0782\u0787\u0003\u017c"+ + "\u00be\u0000\u0783\u0787\u0003\u0182\u00c1\u0000\u0784\u0787\u0003\u0188"+ + "\u00c4\u0000\u0785\u0787\u0003\u0190\u00c8\u0000\u0786\u0781\u0001\u0000"+ + "\u0000\u0000\u0786\u0782\u0001\u0000\u0000\u0000\u0786\u0783\u0001\u0000"+ + "\u0000\u0000\u0786\u0784\u0001\u0000\u0000\u0000\u0786\u0785\u0001\u0000"+ + "\u0000\u0000\u0787\u0167\u0001\u0000\u0000\u0000\u0788\u0789\u0001\u0000"+ + "\u0000\u0000\u0789\u0169\u0001\u0000\u0000\u0000\u078a\u078f\u0003\u0174"+ + "\u00ba\u0000\u078b\u078f\u0003\u017c\u00be\u0000\u078c\u078f\u0003\u0188"+ + "\u00c4\u0000\u078d\u078f\u0003\u0190\u00c8\u0000\u078e\u078a\u0001\u0000"+ + "\u0000\u0000\u078e\u078b\u0001\u0000\u0000\u0000\u078e\u078c\u0001\u0000"+ + "\u0000\u0000\u078e\u078d\u0001\u0000\u0000\u0000\u078f\u016b\u0001\u0000"+ + "\u0000\u0000\u0790\u07b9\u0003\u0000\u0000\u0000\u0791\u0796\u00034\u001a"+ + "\u0000\u0792\u0793\u0005=\u0000\u0000\u0793\u0795\u0005>\u0000\u0000\u0794"+ + "\u0792\u0001\u0000\u0000\u0000\u0795\u0798\u0001\u0000\u0000\u0000\u0796"+ + "\u0794\u0001\u0000\u0000\u0000\u0796\u0797\u0001\u0000\u0000\u0000\u0797"+ + "\u0799\u0001\u0000\u0000\u0000\u0798\u0796\u0001\u0000\u0000\u0000\u0799"+ + "\u079a\u0005A\u0000\u0000\u079a\u079b\u0005\t\u0000\u0000\u079b\u07b9"+ + "\u0001\u0000\u0000\u0000\u079c\u07a1\u0003t:\u0000\u079d\u079e\u0005="+ + "\u0000\u0000\u079e\u07a0\u0005>\u0000\u0000\u079f\u079d\u0001\u0000\u0000"+ + "\u0000\u07a0\u07a3\u0001\u0000\u0000\u0000\u07a1\u079f\u0001\u0000\u0000"+ + "\u0000\u07a1\u07a2\u0001\u0000\u0000\u0000\u07a2\u07a4\u0001\u0000\u0000"+ + "\u0000\u07a3\u07a1\u0001\u0000\u0000\u0000\u07a4\u07a5\u0005A\u0000\u0000"+ + "\u07a5\u07a6\u0005\t\u0000\u0000\u07a6\u07b9\u0001\u0000\u0000\u0000\u07a7"+ + "\u07a8\u00050\u0000\u0000\u07a8\u07a9\u0005A\u0000\u0000\u07a9\u07b9\u0005"+ + "\t\u0000\u0000\u07aa\u07b9\u0005+\u0000\u0000\u07ab\u07ac\u00034\u001a"+ + "\u0000\u07ac\u07ad\u0005A\u0000\u0000\u07ad\u07ae\u0005+\u0000\u0000\u07ae"+ + "\u07b9\u0001\u0000\u0000\u0000\u07af\u07b0\u00059\u0000\u0000\u07b0\u07b1"+ + "\u0003\u019c\u00ce\u0000\u07b1\u07b2\u0005:\u0000\u0000\u07b2\u07b9\u0001"+ + "\u0000\u0000\u0000\u07b3\u07b9\u0003\u0176\u00bb\u0000\u07b4\u07b9\u0003"+ + "\u017e\u00bf\u0000\u07b5\u07b9\u0003\u0184\u00c2\u0000\u07b6\u07b9\u0003"+ + "\u018a\u00c5\u0000\u07b7\u07b9\u0003\u0192\u00c9\u0000\u07b8\u0790\u0001"+ + "\u0000\u0000\u0000\u07b8\u0791\u0001\u0000\u0000\u0000\u07b8\u079c\u0001"+ + "\u0000\u0000\u0000\u07b8\u07a7\u0001\u0000\u0000\u0000\u07b8\u07aa\u0001"+ + "\u0000\u0000\u0000\u07b8\u07ab\u0001\u0000\u0000\u0000\u07b8\u07af\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b3\u0001\u0000\u0000\u0000\u07b8\u07b4\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b5\u0001\u0000\u0000\u0000\u07b8\u07b6\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b7\u0001\u0000\u0000\u0000\u07b9\u016d\u0001"+ + "\u0000\u0000\u0000\u07ba\u07bb\u0001\u0000\u0000\u0000\u07bb\u016f\u0001"+ + "\u0000\u0000\u0000\u07bc\u07e4\u0003\u0000\u0000\u0000\u07bd\u07c2\u0003"+ + "4\u001a\u0000\u07be\u07bf\u0005=\u0000\u0000\u07bf\u07c1\u0005>\u0000"+ + "\u0000\u07c0\u07be\u0001\u0000\u0000\u0000\u07c1\u07c4\u0001\u0000\u0000"+ + "\u0000\u07c2\u07c0\u0001\u0000\u0000\u0000\u07c2\u07c3\u0001\u0000\u0000"+ + "\u0000\u07c3\u07c5\u0001\u0000\u0000\u0000\u07c4\u07c2\u0001\u0000\u0000"+ + "\u0000\u07c5\u07c6\u0005A\u0000\u0000\u07c6\u07c7\u0005\t\u0000\u0000"+ + "\u07c7\u07e4\u0001\u0000\u0000\u0000\u07c8\u07cd\u0003t:\u0000\u07c9\u07ca"+ + "\u0005=\u0000\u0000\u07ca\u07cc\u0005>\u0000\u0000\u07cb\u07c9\u0001\u0000"+ + "\u0000\u0000\u07cc\u07cf\u0001\u0000\u0000\u0000\u07cd\u07cb\u0001\u0000"+ + "\u0000\u0000\u07cd\u07ce\u0001\u0000\u0000\u0000\u07ce\u07d0\u0001\u0000"+ + "\u0000\u0000\u07cf\u07cd\u0001\u0000\u0000\u0000\u07d0\u07d1\u0005A\u0000"+ + "\u0000\u07d1\u07d2\u0005\t\u0000\u0000\u07d2\u07e4\u0001\u0000\u0000\u0000"+ + "\u07d3\u07d4\u00050\u0000\u0000\u07d4\u07d5\u0005A\u0000\u0000\u07d5\u07e4"+ + "\u0005\t\u0000\u0000\u07d6\u07e4\u0005+\u0000\u0000\u07d7\u07d8\u0003"+ + "4\u001a\u0000\u07d8\u07d9\u0005A\u0000\u0000\u07d9\u07da\u0005+\u0000"+ + "\u0000\u07da\u07e4\u0001\u0000\u0000\u0000\u07db\u07dc\u00059\u0000\u0000"+ + "\u07dc\u07dd\u0003\u019c\u00ce\u0000\u07dd\u07de\u0005:\u0000\u0000\u07de"+ + "\u07e4\u0001\u0000\u0000\u0000\u07df\u07e4\u0003\u0176\u00bb\u0000\u07e0"+ + "\u07e4\u0003\u017e\u00bf\u0000\u07e1\u07e4\u0003\u018a\u00c5\u0000\u07e2"+ + "\u07e4\u0003\u0192\u00c9\u0000\u07e3\u07bc\u0001\u0000\u0000\u0000\u07e3"+ + "\u07bd\u0001\u0000\u0000\u0000\u07e3\u07c8\u0001\u0000\u0000\u0000\u07e3"+ + "\u07d3\u0001\u0000\u0000\u0000\u07e3\u07d6\u0001\u0000\u0000\u0000\u07e3"+ + "\u07d7\u0001\u0000\u0000\u0000\u07e3\u07db\u0001\u0000\u0000\u0000\u07e3"+ + "\u07df\u0001\u0000\u0000\u0000\u07e3\u07e0\u0001\u0000\u0000\u0000\u07e3"+ + "\u07e1\u0001\u0000\u0000\u0000\u07e3\u07e2\u0001\u0000\u0000\u0000\u07e4"+ + "\u0171\u0001\u0000\u0000\u0000\u07e5\u07e7\u0005\u001f\u0000\u0000\u07e6"+ + "\u07e8\u0003(\u0014\u0000\u07e7\u07e6\u0001\u0000\u0000\u0000\u07e7\u07e8"+ + "\u0001\u0000\u0000\u0000\u07e8\u07ec\u0001\u0000\u0000\u0000\u07e9\u07eb"+ + "\u0003\u00e4r\u0000\u07ea\u07e9\u0001\u0000\u0000\u0000\u07eb\u07ee\u0001"+ + "\u0000\u0000\u0000\u07ec\u07ea\u0001\u0000\u0000\u0000\u07ec\u07ed\u0001"+ + "\u0000\u0000\u0000\u07ed\u07ef\u0001\u0000\u0000\u0000\u07ee\u07ec\u0001"+ + "\u0000\u0000\u0000\u07ef\u07fa\u0005f\u0000\u0000\u07f0\u07f4\u0005A\u0000"+ + "\u0000\u07f1\u07f3\u0003\u00e4r\u0000\u07f2\u07f1\u0001\u0000\u0000\u0000"+ + "\u07f3\u07f6\u0001\u0000\u0000\u0000\u07f4\u07f2\u0001\u0000\u0000\u0000"+ + "\u07f4\u07f5\u0001\u0000\u0000\u0000\u07f5\u07f7\u0001\u0000\u0000\u0000"+ + "\u07f6\u07f4\u0001\u0000\u0000\u0000\u07f7\u07f9\u0005f\u0000\u0000\u07f8"+ + "\u07f0\u0001\u0000\u0000\u0000\u07f9\u07fc\u0001\u0000\u0000\u0000\u07fa"+ + "\u07f8\u0001\u0000\u0000\u0000\u07fa\u07fb\u0001\u0000\u0000\u0000\u07fb"+ + "\u07fe\u0001\u0000\u0000\u0000\u07fc\u07fa\u0001\u0000\u0000\u0000\u07fd"+ + "\u07ff\u0003\u0178\u00bc\u0000\u07fe\u07fd\u0001\u0000\u0000\u0000\u07fe"+ + "\u07ff\u0001\u0000\u0000\u0000\u07ff\u0800\u0001\u0000\u0000\u0000\u0800"+ + "\u0802\u00059\u0000\u0000\u0801\u0803\u0003\u018c\u00c6\u0000\u0802\u0801"+ + "\u0001\u0000\u0000\u0000\u0802\u0803\u0001\u0000\u0000\u0000\u0803\u0804"+ + "\u0001\u0000\u0000\u0000\u0804\u0806\u0005:\u0000\u0000\u0805\u0807\u0003"+ + "`0\u0000\u0806\u0805\u0001\u0000\u0000\u0000\u0806\u0807\u0001\u0000\u0000"+ + "\u0000\u0807\u0839\u0001\u0000\u0000\u0000\u0808\u0809\u00038\u001c\u0000"+ + "\u0809\u080a\u0005A\u0000\u0000\u080a\u080c\u0005\u001f\u0000\u0000\u080b"+ + "\u080d\u0003(\u0014\u0000\u080c\u080b\u0001\u0000\u0000\u0000\u080c\u080d"+ + "\u0001\u0000\u0000\u0000\u080d\u0811\u0001\u0000\u0000\u0000\u080e\u0810"+ + "\u0003\u00e4r\u0000\u080f\u080e\u0001\u0000\u0000\u0000\u0810\u0813\u0001"+ + "\u0000\u0000\u0000\u0811\u080f\u0001\u0000\u0000\u0000\u0811\u0812\u0001"+ + "\u0000\u0000\u0000\u0812\u0814\u0001\u0000\u0000\u0000\u0813\u0811\u0001"+ + "\u0000\u0000\u0000\u0814\u0816\u0005f\u0000\u0000\u0815\u0817\u0003\u0178"+ + "\u00bc\u0000\u0816\u0815\u0001\u0000\u0000\u0000\u0816\u0817\u0001\u0000"+ + "\u0000\u0000\u0817\u0818\u0001\u0000\u0000\u0000\u0818\u081a\u00059\u0000"+ + "\u0000\u0819\u081b\u0003\u018c\u00c6\u0000\u081a\u0819\u0001\u0000\u0000"+ + "\u0000\u081a\u081b\u0001\u0000\u0000\u0000\u081b\u081c\u0001\u0000\u0000"+ + "\u0000\u081c\u081e\u0005:\u0000\u0000\u081d\u081f\u0003`0\u0000\u081e"+ + "\u081d\u0001\u0000\u0000\u0000\u081e\u081f\u0001\u0000\u0000\u0000\u081f"+ + "\u0839\u0001\u0000\u0000\u0000\u0820\u0821\u0003\u015e\u00af\u0000\u0821"+ + "\u0822\u0005A\u0000\u0000\u0822\u0824\u0005\u001f\u0000\u0000\u0823\u0825"+ + "\u0003(\u0014\u0000\u0824\u0823\u0001\u0000\u0000\u0000\u0824\u0825\u0001"+ + "\u0000\u0000\u0000\u0825\u0829\u0001\u0000\u0000\u0000\u0826\u0828\u0003"+ + "\u00e4r\u0000\u0827\u0826\u0001\u0000\u0000\u0000\u0828\u082b\u0001\u0000"+ + "\u0000\u0000\u0829\u0827\u0001\u0000\u0000\u0000\u0829\u082a\u0001\u0000"+ + "\u0000\u0000\u082a\u082c\u0001\u0000\u0000\u0000\u082b\u0829\u0001\u0000"+ + "\u0000\u0000\u082c\u082e\u0005f\u0000\u0000\u082d\u082f\u0003\u0178\u00bc"+ + "\u0000\u082e\u082d\u0001\u0000\u0000\u0000\u082e\u082f\u0001\u0000\u0000"+ + "\u0000\u082f\u0830\u0001\u0000\u0000\u0000\u0830\u0832\u00059\u0000\u0000"+ + "\u0831\u0833\u0003\u018c\u00c6\u0000\u0832\u0831\u0001\u0000\u0000\u0000"+ + "\u0832\u0833\u0001\u0000\u0000\u0000\u0833\u0834\u0001\u0000\u0000\u0000"+ + "\u0834\u0836\u0005:\u0000\u0000\u0835\u0837\u0003`0\u0000\u0836\u0835"+ + "\u0001\u0000\u0000\u0000\u0836\u0837\u0001\u0000\u0000\u0000\u0837\u0839"+ + "\u0001\u0000\u0000\u0000\u0838\u07e5\u0001\u0000\u0000\u0000\u0838\u0808"+ + "\u0001\u0000\u0000\u0000\u0838\u0820\u0001\u0000\u0000\u0000\u0839\u0173"+ + "\u0001\u0000\u0000\u0000\u083a\u083b\u0005A\u0000\u0000\u083b\u083d\u0005"+ + "\u001f\u0000\u0000\u083c\u083e\u0003(\u0014\u0000\u083d\u083c\u0001\u0000"+ + "\u0000\u0000\u083d\u083e\u0001\u0000\u0000\u0000\u083e\u0842\u0001\u0000"+ + "\u0000\u0000\u083f\u0841\u0003\u00e4r\u0000\u0840\u083f\u0001\u0000\u0000"+ + "\u0000\u0841\u0844\u0001\u0000\u0000\u0000\u0842\u0840\u0001\u0000\u0000"+ + "\u0000\u0842\u0843\u0001\u0000\u0000\u0000\u0843\u0845\u0001\u0000\u0000"+ + "\u0000\u0844\u0842\u0001\u0000\u0000\u0000\u0845\u0847\u0005f\u0000\u0000"+ + "\u0846\u0848\u0003\u0178\u00bc\u0000\u0847\u0846\u0001\u0000\u0000\u0000"+ + "\u0847\u0848\u0001\u0000\u0000\u0000\u0848\u0849\u0001\u0000\u0000\u0000"+ + "\u0849\u084b\u00059\u0000\u0000\u084a\u084c\u0003\u018c\u00c6\u0000\u084b"+ + "\u084a\u0001\u0000\u0000\u0000\u084b\u084c\u0001\u0000\u0000\u0000\u084c"+ + "\u084d\u0001\u0000\u0000\u0000\u084d\u084f\u0005:\u0000\u0000\u084e\u0850"+ + "\u0003`0\u0000\u084f\u084e\u0001\u0000\u0000\u0000\u084f\u0850\u0001\u0000"+ + "\u0000\u0000\u0850\u0175\u0001\u0000\u0000\u0000\u0851\u0853\u0005\u001f"+ + "\u0000\u0000\u0852\u0854\u0003(\u0014\u0000\u0853\u0852\u0001\u0000\u0000"+ + "\u0000\u0853\u0854\u0001\u0000\u0000\u0000\u0854\u0858\u0001\u0000\u0000"+ + "\u0000\u0855\u0857\u0003\u00e4r\u0000\u0856\u0855\u0001\u0000\u0000\u0000"+ + "\u0857\u085a\u0001\u0000\u0000\u0000\u0858\u0856\u0001\u0000\u0000\u0000"+ + "\u0858\u0859\u0001\u0000\u0000\u0000\u0859\u085b\u0001\u0000\u0000\u0000"+ + "\u085a\u0858\u0001\u0000\u0000\u0000\u085b\u0866\u0005f\u0000\u0000\u085c"+ + "\u0860\u0005A\u0000\u0000\u085d\u085f\u0003\u00e4r\u0000\u085e\u085d\u0001"+ + "\u0000\u0000\u0000\u085f\u0862\u0001\u0000\u0000\u0000\u0860\u085e\u0001"+ + "\u0000\u0000\u0000\u0860\u0861\u0001\u0000\u0000\u0000\u0861\u0863\u0001"+ + "\u0000\u0000\u0000\u0862\u0860\u0001\u0000\u0000\u0000\u0863\u0865\u0005"+ + "f\u0000\u0000\u0864\u085c\u0001\u0000\u0000\u0000\u0865\u0868\u0001\u0000"+ + "\u0000\u0000\u0866\u0864\u0001\u0000\u0000\u0000\u0866\u0867\u0001\u0000"+ + "\u0000\u0000\u0867\u086a\u0001\u0000\u0000\u0000\u0868\u0866\u0001\u0000"+ + "\u0000\u0000\u0869\u086b\u0003\u0178\u00bc\u0000\u086a\u0869\u0001\u0000"+ + "\u0000\u0000\u086a\u086b\u0001\u0000\u0000\u0000\u086b\u086c\u0001\u0000"+ + "\u0000\u0000\u086c\u086e\u00059\u0000\u0000\u086d\u086f\u0003\u018c\u00c6"+ + "\u0000\u086e\u086d\u0001\u0000\u0000\u0000\u086e\u086f\u0001\u0000\u0000"+ + "\u0000\u086f\u0870\u0001\u0000\u0000\u0000\u0870\u0872\u0005:\u0000\u0000"+ + "\u0871\u0873\u0003`0\u0000\u0872\u0871\u0001\u0000\u0000\u0000\u0872\u0873"+ + "\u0001\u0000\u0000\u0000\u0873\u088d\u0001\u0000\u0000\u0000\u0874\u0875"+ + "\u00038\u001c\u0000\u0875\u0876\u0005A\u0000\u0000\u0876\u0878\u0005\u001f"+ + "\u0000\u0000\u0877\u0879\u0003(\u0014\u0000\u0878\u0877\u0001\u0000\u0000"+ + "\u0000\u0878\u0879\u0001\u0000\u0000\u0000\u0879\u087d\u0001\u0000\u0000"+ + "\u0000\u087a\u087c\u0003\u00e4r\u0000\u087b\u087a\u0001\u0000\u0000\u0000"+ + "\u087c\u087f\u0001\u0000\u0000\u0000\u087d\u087b\u0001\u0000\u0000\u0000"+ + "\u087d\u087e\u0001\u0000\u0000\u0000\u087e\u0880\u0001\u0000\u0000\u0000"+ + "\u087f\u087d\u0001\u0000\u0000\u0000\u0880\u0882\u0005f\u0000\u0000\u0881"+ + "\u0883\u0003\u0178\u00bc\u0000\u0882\u0881\u0001\u0000\u0000\u0000\u0882"+ + "\u0883\u0001\u0000\u0000\u0000\u0883\u0884\u0001\u0000\u0000\u0000\u0884"+ + "\u0886\u00059\u0000\u0000\u0885\u0887\u0003\u018c\u00c6\u0000\u0886\u0885"+ + "\u0001\u0000\u0000\u0000\u0886\u0887\u0001\u0000\u0000\u0000\u0887\u0888"+ + "\u0001\u0000\u0000\u0000\u0888\u088a\u0005:\u0000\u0000\u0889\u088b\u0003"+ + "`0\u0000\u088a\u0889\u0001\u0000\u0000\u0000\u088a\u088b\u0001\u0000\u0000"+ + "\u0000\u088b\u088d\u0001\u0000\u0000\u0000\u088c\u0851\u0001\u0000\u0000"+ + "\u0000\u088c\u0874\u0001\u0000\u0000\u0000\u088d\u0177\u0001\u0000\u0000"+ + "\u0000\u088e\u0892\u0003(\u0014\u0000\u088f\u0890\u0005D\u0000\u0000\u0890"+ + "\u0892\u0005C\u0000\u0000\u0891\u088e\u0001\u0000\u0000\u0000\u0891\u088f"+ + "\u0001\u0000\u0000\u0000\u0892\u0179\u0001\u0000\u0000\u0000\u0893\u0894"+ + "\u0003\u015e\u00af\u0000\u0894\u0895\u0005A\u0000\u0000\u0895\u0896\u0005"+ + "f\u0000\u0000\u0896\u08a1\u0001\u0000\u0000\u0000\u0897\u0898\u0005(\u0000"+ + "\u0000\u0898\u0899\u0005A\u0000\u0000\u0899\u08a1\u0005f\u0000\u0000\u089a"+ + "\u089b\u00034\u001a\u0000\u089b\u089c\u0005A\u0000\u0000\u089c\u089d\u0005"+ + "(\u0000\u0000\u089d\u089e\u0005A\u0000\u0000\u089e\u089f\u0005f\u0000"+ + "\u0000\u089f\u08a1\u0001\u0000\u0000\u0000\u08a0\u0893\u0001\u0000\u0000"+ + "\u0000\u08a0\u0897\u0001\u0000\u0000\u0000\u08a0\u089a\u0001\u0000\u0000"+ + "\u0000\u08a1\u017b\u0001\u0000\u0000\u0000\u08a2\u08a3\u0005A\u0000\u0000"+ + "\u08a3\u08a4\u0005f\u0000\u0000\u08a4\u017d\u0001\u0000\u0000\u0000\u08a5"+ + "\u08a6\u0005(\u0000\u0000\u08a6\u08a7\u0005A\u0000\u0000\u08a7\u08af\u0005"+ + "f\u0000\u0000\u08a8\u08a9\u00034\u001a\u0000\u08a9\u08aa\u0005A\u0000"+ + "\u0000\u08aa\u08ab\u0005(\u0000\u0000\u08ab\u08ac\u0005A\u0000\u0000\u08ac"+ + "\u08ad\u0005f\u0000\u0000\u08ad\u08af\u0001\u0000\u0000\u0000\u08ae\u08a5"+ + "\u0001\u0000\u0000\u0000\u08ae\u08a8\u0001\u0000\u0000\u0000\u08af\u017f"+ + "\u0001\u0000\u0000\u0000\u08b0\u08b1\u00038\u001c\u0000\u08b1\u08b2\u0005"+ + "=\u0000\u0000\u08b2\u08b3\u0003\u019c\u00ce\u0000\u08b3\u08b4\u0005>\u0000"+ + "\u0000\u08b4\u08bb\u0001\u0000\u0000\u0000\u08b5\u08b6\u0003\u0164\u00b2"+ + "\u0000\u08b6\u08b7\u0005=\u0000\u0000\u08b7\u08b8\u0003\u019c\u00ce\u0000"+ + "\u08b8\u08b9\u0005>\u0000\u0000\u08b9\u08bb\u0001\u0000\u0000\u0000\u08ba"+ + "\u08b0\u0001\u0000\u0000\u0000\u08ba\u08b5\u0001\u0000\u0000\u0000\u08bb"+ + "\u08c3\u0001\u0000\u0000\u0000\u08bc\u08bd\u0003\u0162\u00b1\u0000\u08bd"+ + "\u08be\u0005=\u0000\u0000\u08be\u08bf\u0003\u019c\u00ce\u0000\u08bf\u08c0"+ + "\u0005>\u0000\u0000\u08c0\u08c2\u0001\u0000\u0000\u0000\u08c1\u08bc\u0001"+ + "\u0000\u0000\u0000\u08c2\u08c5\u0001\u0000\u0000\u0000\u08c3\u08c1\u0001"+ + "\u0000\u0000\u0000\u08c3\u08c4\u0001\u0000\u0000\u0000\u08c4\u0181\u0001"+ + "\u0000\u0000\u0000\u08c5\u08c3\u0001\u0000\u0000\u0000\u08c6\u08c7\u0003"+ + "\u016a\u00b5\u0000\u08c7\u08c8\u0005=\u0000\u0000\u08c8\u08c9\u0003\u019c"+ + "\u00ce\u0000\u08c9\u08d1\u0005>\u0000\u0000\u08ca\u08cb\u0003\u0168\u00b4"+ + "\u0000\u08cb\u08cc\u0005=\u0000\u0000\u08cc\u08cd\u0003\u019c\u00ce\u0000"+ + "\u08cd\u08ce\u0005>\u0000\u0000\u08ce\u08d0\u0001\u0000\u0000\u0000\u08cf"+ + "\u08ca\u0001\u0000\u0000\u0000\u08d0\u08d3\u0001\u0000\u0000\u0000\u08d1"+ + "\u08cf\u0001\u0000\u0000\u0000\u08d1\u08d2\u0001\u0000\u0000\u0000\u08d2"+ + "\u0183\u0001\u0000\u0000\u0000\u08d3\u08d1\u0001\u0000\u0000\u0000\u08d4"+ + "\u08d5\u00038\u001c\u0000\u08d5\u08d6\u0005=\u0000\u0000\u08d6\u08d7\u0003"+ + "\u019c\u00ce\u0000\u08d7\u08d8\u0005>\u0000\u0000\u08d8\u08df\u0001\u0000"+ + "\u0000\u0000\u08d9\u08da\u0003\u0170\u00b8\u0000\u08da\u08db\u0005=\u0000"+ + "\u0000\u08db\u08dc\u0003\u019c\u00ce\u0000\u08dc\u08dd\u0005>\u0000\u0000"+ + "\u08dd\u08df\u0001\u0000\u0000\u0000\u08de\u08d4\u0001\u0000\u0000\u0000"+ + "\u08de\u08d9\u0001\u0000\u0000\u0000\u08df\u08e7\u0001\u0000\u0000\u0000"+ + "\u08e0\u08e1\u0003\u016e\u00b7\u0000\u08e1\u08e2\u0005=\u0000\u0000\u08e2"+ + "\u08e3\u0003\u019c\u00ce\u0000\u08e3\u08e4\u0005>\u0000\u0000\u08e4\u08e6"+ + "\u0001\u0000\u0000\u0000\u08e5\u08e0\u0001\u0000\u0000\u0000\u08e6\u08e9"+ + "\u0001\u0000\u0000\u0000\u08e7\u08e5\u0001\u0000\u0000\u0000\u08e7\u08e8"+ + "\u0001\u0000\u0000\u0000\u08e8\u0185\u0001\u0000\u0000\u0000\u08e9\u08e7"+ + "\u0001\u0000\u0000\u0000\u08ea\u08eb\u0003:\u001d\u0000\u08eb\u08ed\u0005"+ + "9\u0000\u0000\u08ec\u08ee\u0003\u018c\u00c6\u0000\u08ed\u08ec\u0001\u0000"+ + "\u0000\u0000\u08ed\u08ee\u0001\u0000\u0000\u0000\u08ee\u08ef\u0001\u0000"+ + "\u0000\u0000\u08ef\u08f0\u0005:\u0000\u0000\u08f0\u092f\u0001\u0000\u0000"+ + "\u0000\u08f1\u08f2\u00034\u001a\u0000\u08f2\u08f4\u0005A\u0000\u0000\u08f3"+ + "\u08f5\u0003(\u0014\u0000\u08f4\u08f3\u0001\u0000\u0000\u0000\u08f4\u08f5"+ + "\u0001\u0000\u0000\u0000\u08f5\u08f6\u0001\u0000\u0000\u0000\u08f6\u08f7"+ + "\u0005f\u0000\u0000\u08f7\u08f9\u00059\u0000\u0000\u08f8\u08fa\u0003\u018c"+ + "\u00c6\u0000\u08f9\u08f8\u0001\u0000\u0000\u0000\u08f9\u08fa\u0001\u0000"+ + "\u0000\u0000\u08fa\u08fb\u0001\u0000\u0000\u0000\u08fb\u08fc\u0005:\u0000"+ + "\u0000\u08fc\u092f\u0001\u0000\u0000\u0000\u08fd\u08fe\u00038\u001c\u0000"+ + "\u08fe\u0900\u0005A\u0000\u0000\u08ff\u0901\u0003(\u0014\u0000\u0900\u08ff"+ + "\u0001\u0000\u0000\u0000\u0900\u0901\u0001\u0000\u0000\u0000\u0901\u0902"+ + "\u0001\u0000\u0000\u0000\u0902\u0903\u0005f\u0000\u0000\u0903\u0905\u0005"+ + "9\u0000\u0000\u0904\u0906\u0003\u018c\u00c6\u0000\u0905\u0904\u0001\u0000"+ + "\u0000\u0000\u0905\u0906\u0001\u0000\u0000\u0000\u0906\u0907\u0001\u0000"+ + "\u0000\u0000\u0907\u0908\u0005:\u0000\u0000\u0908\u092f\u0001\u0000\u0000"+ + "\u0000\u0909\u090a\u0003\u015e\u00af\u0000\u090a\u090c\u0005A\u0000\u0000"+ + "\u090b\u090d\u0003(\u0014\u0000\u090c\u090b\u0001\u0000\u0000\u0000\u090c"+ + "\u090d\u0001\u0000\u0000\u0000\u090d\u090e\u0001\u0000\u0000\u0000\u090e"+ + "\u090f\u0005f\u0000\u0000\u090f\u0911\u00059\u0000\u0000\u0910\u0912\u0003"+ + "\u018c\u00c6\u0000\u0911\u0910\u0001\u0000\u0000\u0000\u0911\u0912\u0001"+ + "\u0000\u0000\u0000\u0912\u0913\u0001\u0000\u0000\u0000\u0913\u0914\u0005"+ + ":\u0000\u0000\u0914\u092f\u0001\u0000\u0000\u0000\u0915\u0916\u0005(\u0000"+ + "\u0000\u0916\u0918\u0005A\u0000\u0000\u0917\u0919\u0003(\u0014\u0000\u0918"+ + "\u0917\u0001\u0000\u0000\u0000\u0918\u0919\u0001\u0000\u0000\u0000\u0919"+ + "\u091a\u0001\u0000\u0000\u0000\u091a\u091b\u0005f\u0000\u0000\u091b\u091d"+ + "\u00059\u0000\u0000\u091c\u091e\u0003\u018c\u00c6\u0000\u091d\u091c\u0001"+ + "\u0000\u0000\u0000\u091d\u091e\u0001\u0000\u0000\u0000\u091e\u091f\u0001"+ + "\u0000\u0000\u0000\u091f\u092f\u0005:\u0000\u0000\u0920\u0921\u00034\u001a"+ + "\u0000\u0921\u0922\u0005A\u0000\u0000\u0922\u0923\u0005(\u0000\u0000\u0923"+ + "\u0925\u0005A\u0000\u0000\u0924\u0926\u0003(\u0014\u0000\u0925\u0924\u0001"+ + "\u0000\u0000\u0000\u0925\u0926\u0001\u0000\u0000\u0000\u0926\u0927\u0001"+ + "\u0000\u0000\u0000\u0927\u0928\u0005f\u0000\u0000\u0928\u092a\u00059\u0000"+ + "\u0000\u0929\u092b\u0003\u018c\u00c6\u0000\u092a\u0929\u0001\u0000\u0000"+ + "\u0000\u092a\u092b\u0001\u0000\u0000\u0000\u092b\u092c\u0001\u0000\u0000"+ + "\u0000\u092c\u092d\u0005:\u0000\u0000\u092d\u092f\u0001\u0000\u0000\u0000"+ + "\u092e\u08ea\u0001\u0000\u0000\u0000\u092e\u08f1\u0001\u0000\u0000\u0000"+ + "\u092e\u08fd\u0001\u0000\u0000\u0000\u092e\u0909\u0001\u0000\u0000\u0000"+ + "\u092e\u0915\u0001\u0000\u0000\u0000\u092e\u0920\u0001\u0000\u0000\u0000"+ + "\u092f\u0187\u0001\u0000\u0000\u0000\u0930\u0932\u0005A\u0000\u0000\u0931"+ + "\u0933\u0003(\u0014\u0000\u0932\u0931\u0001\u0000\u0000\u0000\u0932\u0933"+ + "\u0001\u0000\u0000\u0000\u0933\u0934\u0001\u0000\u0000\u0000\u0934\u0935"+ + "\u0005f\u0000\u0000\u0935\u0937\u00059\u0000\u0000\u0936\u0938\u0003\u018c"+ + "\u00c6\u0000\u0937\u0936\u0001\u0000\u0000\u0000\u0937\u0938\u0001\u0000"+ + "\u0000\u0000\u0938\u0939\u0001\u0000\u0000\u0000\u0939\u093a\u0005:\u0000"+ + "\u0000\u093a\u0189\u0001\u0000\u0000\u0000\u093b\u093c\u0003:\u001d\u0000"+ + "\u093c\u093e\u00059\u0000\u0000\u093d\u093f\u0003\u018c\u00c6\u0000\u093e"+ + "\u093d\u0001\u0000\u0000\u0000\u093e\u093f\u0001\u0000\u0000\u0000\u093f"+ + "\u0940\u0001\u0000\u0000\u0000\u0940\u0941\u0005:\u0000\u0000\u0941\u0974"+ + "\u0001\u0000\u0000\u0000\u0942\u0943\u00034\u001a\u0000\u0943\u0945\u0005"+ + "A\u0000\u0000\u0944\u0946\u0003(\u0014\u0000\u0945\u0944\u0001\u0000\u0000"+ + "\u0000\u0945\u0946\u0001\u0000\u0000\u0000\u0946\u0947\u0001\u0000\u0000"+ + "\u0000\u0947\u0948\u0005f\u0000\u0000\u0948\u094a\u00059\u0000\u0000\u0949"+ + "\u094b\u0003\u018c\u00c6\u0000\u094a\u0949\u0001\u0000\u0000\u0000\u094a"+ + "\u094b\u0001\u0000\u0000\u0000\u094b\u094c\u0001\u0000\u0000\u0000\u094c"+ + "\u094d\u0005:\u0000\u0000\u094d\u0974\u0001\u0000\u0000\u0000\u094e\u094f"+ + "\u00038\u001c\u0000\u094f\u0951\u0005A\u0000\u0000\u0950\u0952\u0003("+ + "\u0014\u0000\u0951\u0950\u0001\u0000\u0000\u0000\u0951\u0952\u0001\u0000"+ + "\u0000\u0000\u0952\u0953\u0001\u0000\u0000\u0000\u0953\u0954\u0005f\u0000"+ + "\u0000\u0954\u0956\u00059\u0000\u0000\u0955\u0957\u0003\u018c\u00c6\u0000"+ + "\u0956\u0955\u0001\u0000\u0000\u0000\u0956\u0957\u0001\u0000\u0000\u0000"+ + "\u0957\u0958\u0001\u0000\u0000\u0000\u0958\u0959\u0005:\u0000\u0000\u0959"+ + "\u0974\u0001\u0000\u0000\u0000\u095a\u095b\u0005(\u0000\u0000\u095b\u095d"+ + "\u0005A\u0000\u0000\u095c\u095e\u0003(\u0014\u0000\u095d\u095c\u0001\u0000"+ + "\u0000\u0000\u095d\u095e\u0001\u0000\u0000\u0000\u095e\u095f\u0001\u0000"+ + "\u0000\u0000\u095f\u0960\u0005f\u0000\u0000\u0960\u0962\u00059\u0000\u0000"+ + "\u0961\u0963\u0003\u018c\u00c6\u0000\u0962\u0961\u0001\u0000\u0000\u0000"+ + "\u0962\u0963\u0001\u0000\u0000\u0000\u0963\u0964\u0001\u0000\u0000\u0000"+ + "\u0964\u0974\u0005:\u0000\u0000\u0965\u0966\u00034\u001a\u0000\u0966\u0967"+ + "\u0005A\u0000\u0000\u0967\u0968\u0005(\u0000\u0000\u0968\u096a\u0005A"+ + "\u0000\u0000\u0969\u096b\u0003(\u0014\u0000\u096a\u0969\u0001\u0000\u0000"+ + "\u0000\u096a\u096b\u0001\u0000\u0000\u0000\u096b\u096c\u0001\u0000\u0000"+ + "\u0000\u096c\u096d\u0005f\u0000\u0000\u096d"; + private static final String _serializedATNSegment1 = + "\u096f\u00059\u0000\u0000\u096e\u0970\u0003\u018c\u00c6\u0000\u096f\u096e"+ + "\u0001\u0000\u0000\u0000\u096f\u0970\u0001\u0000\u0000\u0000\u0970\u0971"+ + "\u0001\u0000\u0000\u0000\u0971\u0972\u0005:\u0000\u0000\u0972\u0974\u0001"+ + "\u0000\u0000\u0000\u0973\u093b\u0001\u0000\u0000\u0000\u0973\u0942\u0001"+ + "\u0000\u0000\u0000\u0973\u094e\u0001\u0000\u0000\u0000\u0973\u095a\u0001"+ + "\u0000\u0000\u0000\u0973\u0965\u0001\u0000\u0000\u0000\u0974\u018b\u0001"+ + "\u0000\u0000\u0000\u0975\u097a\u0003\u019c\u00ce\u0000\u0976\u0977\u0005"+ + "@\u0000\u0000\u0977\u0979\u0003\u019c\u00ce\u0000\u0978\u0976\u0001\u0000"+ + "\u0000\u0000\u0979\u097c\u0001\u0000\u0000\u0000\u097a\u0978\u0001\u0000"+ + "\u0000\u0000\u097a\u097b\u0001\u0000\u0000\u0000\u097b\u018d\u0001\u0000"+ + "\u0000\u0000\u097c\u097a\u0001\u0000\u0000\u0000\u097d\u097e\u00038\u001c"+ + "\u0000\u097e\u0980\u0005Z\u0000\u0000\u097f\u0981\u0003(\u0014\u0000\u0980"+ + "\u097f\u0001\u0000\u0000\u0000\u0980\u0981\u0001\u0000\u0000\u0000\u0981"+ + "\u0982\u0001\u0000\u0000\u0000\u0982\u0983\u0005f\u0000\u0000\u0983\u09ad"+ + "\u0001\u0000\u0000\u0000\u0984\u0985\u0003\n\u0005\u0000\u0985\u0987\u0005"+ + "Z\u0000\u0000\u0986\u0988\u0003(\u0014\u0000\u0987\u0986\u0001\u0000\u0000"+ + "\u0000\u0987\u0988\u0001\u0000\u0000\u0000\u0988\u0989\u0001\u0000\u0000"+ + "\u0000\u0989\u098a\u0005f\u0000\u0000\u098a\u09ad\u0001\u0000\u0000\u0000"+ + "\u098b\u098c\u0003\u015e\u00af\u0000\u098c\u098e\u0005Z\u0000\u0000\u098d"+ + "\u098f\u0003(\u0014\u0000\u098e\u098d\u0001\u0000\u0000\u0000\u098e\u098f"+ + "\u0001\u0000\u0000\u0000\u098f\u0990\u0001\u0000\u0000\u0000\u0990\u0991"+ + "\u0005f\u0000\u0000\u0991\u09ad\u0001\u0000\u0000\u0000\u0992\u0993\u0005"+ + "(\u0000\u0000\u0993\u0995\u0005Z\u0000\u0000\u0994\u0996\u0003(\u0014"+ + "\u0000\u0995\u0994\u0001\u0000\u0000\u0000\u0995\u0996\u0001\u0000\u0000"+ + "\u0000\u0996\u0997\u0001\u0000\u0000\u0000\u0997\u09ad\u0005f\u0000\u0000"+ + "\u0998\u0999\u00034\u001a\u0000\u0999\u099a\u0005A\u0000\u0000\u099a\u099b"+ + "\u0005(\u0000\u0000\u099b\u099d\u0005Z\u0000\u0000\u099c\u099e\u0003("+ + "\u0014\u0000\u099d\u099c\u0001\u0000\u0000\u0000\u099d\u099e\u0001\u0000"+ + "\u0000\u0000\u099e\u099f\u0001\u0000\u0000\u0000\u099f\u09a0\u0005f\u0000"+ + "\u0000\u09a0\u09ad\u0001\u0000\u0000\u0000\u09a1\u09a2\u0003\u000e\u0007"+ + "\u0000\u09a2\u09a4\u0005Z\u0000\u0000\u09a3\u09a5\u0003(\u0014\u0000\u09a4"+ + "\u09a3\u0001\u0000\u0000\u0000\u09a4\u09a5\u0001\u0000\u0000\u0000\u09a5"+ + "\u09a6\u0001\u0000\u0000\u0000\u09a6\u09a7\u0005\u001f\u0000\u0000\u09a7"+ + "\u09ad\u0001\u0000\u0000\u0000\u09a8\u09a9\u0003\u001c\u000e\u0000\u09a9"+ + "\u09aa\u0005Z\u0000\u0000\u09aa\u09ab\u0005\u001f\u0000\u0000\u09ab\u09ad"+ + "\u0001\u0000\u0000\u0000\u09ac\u097d\u0001\u0000\u0000\u0000\u09ac\u0984"+ + "\u0001\u0000\u0000\u0000\u09ac\u098b\u0001\u0000\u0000\u0000\u09ac\u0992"+ + "\u0001\u0000\u0000\u0000\u09ac\u0998\u0001\u0000\u0000\u0000\u09ac\u09a1"+ + "\u0001\u0000\u0000\u0000\u09ac\u09a8\u0001\u0000\u0000\u0000\u09ad\u018f"+ + "\u0001\u0000\u0000\u0000\u09ae\u09b0\u0005Z\u0000\u0000\u09af\u09b1\u0003"+ + "(\u0014\u0000\u09b0\u09af\u0001\u0000\u0000\u0000\u09b0\u09b1\u0001\u0000"+ + "\u0000\u0000\u09b1\u09b2\u0001\u0000\u0000\u0000\u09b2\u09b3\u0005f\u0000"+ + "\u0000\u09b3\u0191\u0001\u0000\u0000\u0000\u09b4\u09b5\u00038\u001c\u0000"+ + "\u09b5\u09b7\u0005Z\u0000\u0000\u09b6\u09b8\u0003(\u0014\u0000\u09b7\u09b6"+ + "\u0001\u0000\u0000\u0000\u09b7\u09b8\u0001\u0000\u0000\u0000\u09b8\u09b9"+ + "\u0001\u0000\u0000\u0000\u09b9\u09ba\u0005f\u0000\u0000\u09ba\u09dd\u0001"+ + "\u0000\u0000\u0000\u09bb\u09bc\u0003\n\u0005\u0000\u09bc\u09be\u0005Z"+ + "\u0000\u0000\u09bd\u09bf\u0003(\u0014\u0000\u09be\u09bd\u0001\u0000\u0000"+ + "\u0000\u09be\u09bf\u0001\u0000\u0000\u0000\u09bf\u09c0\u0001\u0000\u0000"+ + "\u0000\u09c0\u09c1\u0005f\u0000\u0000\u09c1\u09dd\u0001\u0000\u0000\u0000"+ + "\u09c2\u09c3\u0005(\u0000\u0000\u09c3\u09c5\u0005Z\u0000\u0000\u09c4\u09c6"+ + "\u0003(\u0014\u0000\u09c5\u09c4\u0001\u0000\u0000\u0000\u09c5\u09c6\u0001"+ + "\u0000\u0000\u0000\u09c6\u09c7\u0001\u0000\u0000\u0000\u09c7\u09dd\u0005"+ + "f\u0000\u0000\u09c8\u09c9\u00034\u001a\u0000\u09c9\u09ca\u0005A\u0000"+ + "\u0000\u09ca\u09cb\u0005(\u0000\u0000\u09cb\u09cd\u0005Z\u0000\u0000\u09cc"+ + "\u09ce\u0003(\u0014\u0000\u09cd\u09cc\u0001\u0000\u0000\u0000\u09cd\u09ce"+ + "\u0001\u0000\u0000\u0000\u09ce\u09cf\u0001\u0000\u0000\u0000\u09cf\u09d0"+ + "\u0005f\u0000\u0000\u09d0\u09dd\u0001\u0000\u0000\u0000\u09d1\u09d2\u0003"+ + "\u000e\u0007\u0000\u09d2\u09d4\u0005Z\u0000\u0000\u09d3\u09d5\u0003(\u0014"+ + "\u0000\u09d4\u09d3\u0001\u0000\u0000\u0000\u09d4\u09d5\u0001\u0000\u0000"+ + "\u0000\u09d5\u09d6\u0001\u0000\u0000\u0000\u09d6\u09d7\u0005\u001f\u0000"+ + "\u0000\u09d7\u09dd\u0001\u0000\u0000\u0000\u09d8\u09d9\u0003\u001c\u000e"+ + "\u0000\u09d9\u09da\u0005Z\u0000\u0000\u09da\u09db\u0005\u001f\u0000\u0000"+ + "\u09db\u09dd\u0001\u0000\u0000\u0000\u09dc\u09b4\u0001\u0000\u0000\u0000"+ + "\u09dc\u09bb\u0001\u0000\u0000\u0000\u09dc\u09c2\u0001\u0000\u0000\u0000"+ + "\u09dc\u09c8\u0001\u0000\u0000\u0000\u09dc\u09d1\u0001\u0000\u0000\u0000"+ + "\u09dc\u09d8\u0001\u0000\u0000\u0000\u09dd\u0193\u0001\u0000\u0000\u0000"+ + "\u09de\u09df\u0005\u001f\u0000\u0000\u09df\u09e0\u0003\u0002\u0001\u0000"+ + "\u09e0\u09e2\u0003\u0196\u00cb\u0000\u09e1\u09e3\u0003\u001e\u000f\u0000"+ + "\u09e2\u09e1\u0001\u0000\u0000\u0000\u09e2\u09e3\u0001\u0000\u0000\u0000"+ + "\u09e3\u09f5\u0001\u0000\u0000\u0000\u09e4\u09e5\u0005\u001f\u0000\u0000"+ + "\u09e5\u09e6\u0003\f\u0006\u0000\u09e6\u09e8\u0003\u0196\u00cb\u0000\u09e7"+ + "\u09e9\u0003\u001e\u000f\u0000\u09e8\u09e7\u0001\u0000\u0000\u0000\u09e8"+ + "\u09e9\u0001\u0000\u0000\u0000\u09e9\u09f5\u0001\u0000\u0000\u0000\u09ea"+ + "\u09eb\u0005\u001f\u0000\u0000\u09eb\u09ec\u0003\u0002\u0001\u0000\u09ec"+ + "\u09ed\u0003\u001e\u000f\u0000\u09ed\u09ee\u0003\u00f6{\u0000\u09ee\u09f5"+ + "\u0001\u0000\u0000\u0000\u09ef\u09f0\u0005\u001f\u0000\u0000\u09f0\u09f1"+ + "\u0003\f\u0006\u0000\u09f1\u09f2\u0003\u001e\u000f\u0000\u09f2\u09f3\u0003"+ + "\u00f6{\u0000\u09f3\u09f5\u0001\u0000\u0000\u0000\u09f4\u09de\u0001\u0000"+ + "\u0000\u0000\u09f4\u09e4\u0001\u0000\u0000\u0000\u09f4\u09ea\u0001\u0000"+ + "\u0000\u0000\u09f4\u09ef\u0001\u0000\u0000\u0000\u09f5\u0195\u0001\u0000"+ + "\u0000\u0000\u09f6\u09fa\u0003\u0198\u00cc\u0000\u09f7\u09f9\u0003\u0198"+ + "\u00cc\u0000\u09f8\u09f7\u0001\u0000\u0000\u0000\u09f9\u09fc\u0001\u0000"+ + "\u0000\u0000\u09fa\u09f8\u0001\u0000\u0000\u0000\u09fa\u09fb\u0001\u0000"+ + "\u0000\u0000\u09fb\u0197\u0001\u0000\u0000\u0000\u09fc\u09fa\u0001\u0000"+ + "\u0000\u0000\u09fd\u09ff\u0003\u00e4r\u0000\u09fe\u09fd\u0001\u0000\u0000"+ + "\u0000\u09ff\u0a02\u0001\u0000\u0000\u0000\u0a00\u09fe\u0001\u0000\u0000"+ + "\u0000\u0a00\u0a01\u0001\u0000\u0000\u0000\u0a01\u0a03\u0001\u0000\u0000"+ + "\u0000\u0a02\u0a00\u0001\u0000\u0000\u0000\u0a03\u0a04\u0005=\u0000\u0000"+ + "\u0a04\u0a05\u0003\u019c\u00ce\u0000\u0a05\u0a06\u0005>\u0000\u0000\u0a06"+ + "\u0199\u0001\u0000\u0000\u0000\u0a07\u0a08\u0003\u019c\u00ce\u0000\u0a08"+ + "\u019b\u0001\u0000\u0000\u0000\u0a09\u0a0c\u0003\u019e\u00cf\u0000\u0a0a"+ + "\u0a0c\u0003\u01a6\u00d3\u0000\u0a0b\u0a09\u0001\u0000\u0000\u0000\u0a0b"+ + "\u0a0a\u0001\u0000\u0000\u0000\u0a0c\u019d\u0001\u0000\u0000\u0000\u0a0d"+ + "\u0a0e\u0003\u01a0\u00d0\u0000\u0a0e\u0a0f\u0005Y\u0000\u0000\u0a0f\u0a10"+ + "\u0003\u01a4\u00d2\u0000\u0a10\u019f\u0001\u0000\u0000\u0000\u0a11\u0a1c"+ + "\u0005f\u0000\u0000\u0a12\u0a14\u00059\u0000\u0000\u0a13\u0a15\u0003\u0094"+ + "J\u0000\u0a14\u0a13\u0001\u0000\u0000\u0000\u0a14\u0a15\u0001\u0000\u0000"+ + "\u0000\u0a15\u0a16\u0001\u0000\u0000\u0000\u0a16\u0a1c\u0005:\u0000\u0000"+ + "\u0a17\u0a18\u00059\u0000\u0000\u0a18\u0a19\u0003\u01a2\u00d1\u0000\u0a19"+ + "\u0a1a\u0005:\u0000\u0000\u0a1a\u0a1c\u0001\u0000\u0000\u0000\u0a1b\u0a11"+ + "\u0001\u0000\u0000\u0000\u0a1b\u0a12\u0001\u0000\u0000\u0000\u0a1b\u0a17"+ + "\u0001\u0000\u0000\u0000\u0a1c\u01a1\u0001\u0000\u0000\u0000\u0a1d\u0a22"+ + "\u0005f\u0000\u0000\u0a1e\u0a1f\u0005@\u0000\u0000\u0a1f\u0a21\u0005f"+ + "\u0000\u0000\u0a20\u0a1e\u0001\u0000\u0000\u0000\u0a21\u0a24\u0001\u0000"+ + "\u0000\u0000\u0a22\u0a20\u0001\u0000\u0000\u0000\u0a22\u0a23\u0001\u0000"+ + "\u0000\u0000\u0a23\u01a3\u0001\u0000\u0000\u0000\u0a24\u0a22\u0001\u0000"+ + "\u0000\u0000\u0a25\u0a28\u0003\u019c\u00ce\u0000\u0a26\u0a28\u0003\u00fa"+ + "}\u0000\u0a27\u0a25\u0001\u0000\u0000\u0000\u0a27\u0a26\u0001\u0000\u0000"+ + "\u0000\u0a28\u01a5\u0001\u0000\u0000\u0000\u0a29\u0a2c\u0003\u01ae\u00d7"+ + "\u0000\u0a2a\u0a2c\u0003\u01a8\u00d4\u0000\u0a2b\u0a29\u0001\u0000\u0000"+ + "\u0000\u0a2b\u0a2a\u0001\u0000\u0000\u0000\u0a2c\u01a7\u0001\u0000\u0000"+ + "\u0000\u0a2d\u0a2e\u0003\u01aa\u00d5\u0000\u0a2e\u0a2f\u0003\u01ac\u00d6"+ + "\u0000\u0a2f\u0a30\u0003\u019c\u00ce\u0000\u0a30\u01a9\u0001\u0000\u0000"+ + "\u0000\u0a31\u0a35\u00038\u001c\u0000\u0a32\u0a35\u0003\u017a\u00bd\u0000"+ + "\u0a33\u0a35\u0003\u0180\u00c0\u0000\u0a34\u0a31\u0001\u0000\u0000\u0000"+ + "\u0a34\u0a32\u0001\u0000\u0000\u0000\u0a34\u0a33\u0001\u0000\u0000\u0000"+ + "\u0a35\u01ab\u0001\u0000\u0000\u0000\u0a36\u0a37\u0007\u0003\u0000\u0000"+ + "\u0a37\u01ad\u0001\u0000\u0000\u0000\u0a38\u0a40\u0003\u01b0\u00d8\u0000"+ + "\u0a39\u0a3a\u0003\u01b0\u00d8\u0000\u0a3a\u0a3b\u0005G\u0000\u0000\u0a3b"+ + "\u0a3c\u0003\u019c\u00ce\u0000\u0a3c\u0a3d\u0005H\u0000\u0000\u0a3d\u0a3e"+ + "\u0003\u01ae\u00d7\u0000\u0a3e\u0a40\u0001\u0000\u0000\u0000\u0a3f\u0a38"+ + "\u0001\u0000\u0000\u0000\u0a3f\u0a39\u0001\u0000\u0000\u0000\u0a40\u01af"+ + "\u0001\u0000\u0000\u0000\u0a41\u0a42\u0006\u00d8\uffff\uffff\u0000\u0a42"+ + "\u0a43\u0003\u01b2\u00d9\u0000\u0a43\u0a49\u0001\u0000\u0000\u0000\u0a44"+ + "\u0a45\n\u0001\u0000\u0000\u0a45\u0a46\u0005N\u0000\u0000\u0a46\u0a48"+ + "\u0003\u01b2\u00d9\u0000\u0a47\u0a44\u0001\u0000\u0000\u0000\u0a48\u0a4b"+ + "\u0001\u0000\u0000\u0000\u0a49\u0a47\u0001\u0000\u0000\u0000\u0a49\u0a4a"+ + "\u0001\u0000\u0000\u0000\u0a4a\u01b1\u0001\u0000\u0000\u0000\u0a4b\u0a49"+ + "\u0001\u0000\u0000\u0000\u0a4c\u0a4d\u0006\u00d9\uffff\uffff\u0000\u0a4d"+ + "\u0a4e\u0003\u01b4\u00da\u0000\u0a4e\u0a54\u0001\u0000\u0000\u0000\u0a4f"+ + "\u0a50\n\u0001\u0000\u0000\u0a50\u0a51\u0005M\u0000\u0000\u0a51\u0a53"+ + "\u0003\u01b4\u00da\u0000\u0a52\u0a4f\u0001\u0000\u0000\u0000\u0a53\u0a56"+ + "\u0001\u0000\u0000\u0000\u0a54\u0a52\u0001\u0000\u0000\u0000\u0a54\u0a55"+ + "\u0001\u0000\u0000\u0000\u0a55\u01b3\u0001\u0000\u0000\u0000\u0a56\u0a54"+ + "\u0001\u0000\u0000\u0000\u0a57\u0a58\u0006\u00da\uffff\uffff\u0000\u0a58"+ + "\u0a59\u0003\u01b6\u00db\u0000\u0a59\u0a5f\u0001\u0000\u0000\u0000\u0a5a"+ + "\u0a5b\n\u0001\u0000\u0000\u0a5b\u0a5c\u0005V\u0000\u0000\u0a5c\u0a5e"+ + "\u0003\u01b6\u00db\u0000\u0a5d\u0a5a\u0001\u0000\u0000\u0000\u0a5e\u0a61"+ + "\u0001\u0000\u0000\u0000\u0a5f\u0a5d\u0001\u0000\u0000\u0000\u0a5f\u0a60"+ + "\u0001\u0000\u0000\u0000\u0a60\u01b5\u0001\u0000\u0000\u0000\u0a61\u0a5f"+ + "\u0001\u0000\u0000\u0000\u0a62\u0a63\u0006\u00db\uffff\uffff\u0000\u0a63"+ + "\u0a64\u0003\u01b8\u00dc\u0000\u0a64\u0a6a\u0001\u0000\u0000\u0000\u0a65"+ + "\u0a66\n\u0001\u0000\u0000\u0a66\u0a67\u0005W\u0000\u0000\u0a67\u0a69"+ + "\u0003\u01b8\u00dc\u0000\u0a68\u0a65\u0001\u0000\u0000\u0000\u0a69\u0a6c"+ + "\u0001\u0000\u0000\u0000\u0a6a\u0a68\u0001\u0000\u0000\u0000\u0a6a\u0a6b"+ + "\u0001\u0000\u0000\u0000\u0a6b\u01b7\u0001\u0000\u0000\u0000\u0a6c\u0a6a"+ + "\u0001\u0000\u0000\u0000\u0a6d\u0a6e\u0006\u00dc\uffff\uffff\u0000\u0a6e"+ + "\u0a6f\u0003\u01ba\u00dd\u0000\u0a6f\u0a75\u0001\u0000\u0000\u0000\u0a70"+ + "\u0a71\n\u0001\u0000\u0000\u0a71\u0a72\u0005U\u0000\u0000\u0a72\u0a74"+ + "\u0003\u01ba\u00dd\u0000\u0a73\u0a70\u0001\u0000\u0000\u0000\u0a74\u0a77"+ + "\u0001\u0000\u0000\u0000\u0a75\u0a73\u0001\u0000\u0000\u0000\u0a75\u0a76"+ + "\u0001\u0000\u0000\u0000\u0a76\u01b9\u0001\u0000\u0000\u0000\u0a77\u0a75"+ + "\u0001\u0000\u0000\u0000\u0a78\u0a79\u0006\u00dd\uffff\uffff\u0000\u0a79"+ + "\u0a7a\u0003\u01bc\u00de\u0000\u0a7a\u0a83\u0001\u0000\u0000\u0000\u0a7b"+ + "\u0a7c\n\u0002\u0000\u0000\u0a7c\u0a7d\u0005I\u0000\u0000\u0a7d\u0a82"+ + "\u0003\u01bc\u00de\u0000\u0a7e\u0a7f\n\u0001\u0000\u0000\u0a7f\u0a80\u0005"+ + "L\u0000\u0000\u0a80\u0a82\u0003\u01bc\u00de\u0000\u0a81\u0a7b\u0001\u0000"+ + "\u0000\u0000\u0a81\u0a7e\u0001\u0000\u0000\u0000\u0a82\u0a85\u0001\u0000"+ + "\u0000\u0000\u0a83\u0a81\u0001\u0000\u0000\u0000\u0a83\u0a84\u0001\u0000"+ + "\u0000\u0000\u0a84\u01bb\u0001\u0000\u0000\u0000\u0a85\u0a83\u0001\u0000"+ + "\u0000\u0000\u0a86\u0a87\u0006\u00de\uffff\uffff\u0000\u0a87\u0a88\u0003"+ + "\u01be\u00df\u0000\u0a88\u0a9a\u0001\u0000\u0000\u0000\u0a89\u0a8a\n\u0005"+ + "\u0000\u0000\u0a8a\u0a8b\u0005D\u0000\u0000\u0a8b\u0a99\u0003\u01be\u00df"+ + "\u0000\u0a8c\u0a8d\n\u0004\u0000\u0000\u0a8d\u0a8e\u0005C\u0000\u0000"+ + "\u0a8e\u0a99\u0003\u01be\u00df\u0000\u0a8f\u0a90\n\u0003\u0000\u0000\u0a90"+ + "\u0a91\u0005J\u0000\u0000\u0a91\u0a99\u0003\u01be\u00df\u0000\u0a92\u0a93"+ + "\n\u0002\u0000\u0000\u0a93\u0a94\u0005K\u0000\u0000\u0a94\u0a99\u0003"+ + "\u01be\u00df\u0000\u0a95\u0a96\n\u0001\u0000\u0000\u0a96\u0a97\u0005\u001a"+ + "\u0000\u0000\u0a97\u0a99\u0003\n\u0005\u0000\u0a98\u0a89\u0001\u0000\u0000"+ + "\u0000\u0a98\u0a8c\u0001\u0000\u0000\u0000\u0a98\u0a8f\u0001\u0000\u0000"+ + "\u0000\u0a98\u0a92\u0001\u0000\u0000\u0000\u0a98\u0a95\u0001\u0000\u0000"+ + "\u0000\u0a99\u0a9c\u0001\u0000\u0000\u0000\u0a9a\u0a98\u0001\u0000\u0000"+ + "\u0000\u0a9a\u0a9b\u0001\u0000\u0000\u0000\u0a9b\u01bd\u0001\u0000\u0000"+ + "\u0000\u0a9c\u0a9a\u0001\u0000\u0000\u0000\u0a9d\u0a9e\u0006\u00df\uffff"+ + "\uffff\u0000\u0a9e\u0a9f\u0003\u01c0\u00e0\u0000\u0a9f\u0aaf\u0001\u0000"+ + "\u0000\u0000\u0aa0\u0aa1\n\u0003\u0000\u0000\u0aa1\u0aa2\u0005D\u0000"+ + "\u0000\u0aa2\u0aa3\u0005D\u0000\u0000\u0aa3\u0aae\u0003\u01c0\u00e0\u0000"+ + "\u0aa4\u0aa5\n\u0002\u0000\u0000\u0aa5\u0aa6\u0005C\u0000\u0000\u0aa6"+ + "\u0aa7\u0005C\u0000\u0000\u0aa7\u0aae\u0003\u01c0\u00e0\u0000\u0aa8\u0aa9"+ + "\n\u0001\u0000\u0000\u0aa9\u0aaa\u0005C\u0000\u0000\u0aaa\u0aab\u0005"+ + "C\u0000\u0000\u0aab\u0aac\u0005C\u0000\u0000\u0aac\u0aae\u0003\u01c0\u00e0"+ + "\u0000\u0aad\u0aa0\u0001\u0000\u0000\u0000\u0aad\u0aa4\u0001\u0000\u0000"+ + "\u0000\u0aad\u0aa8\u0001\u0000\u0000\u0000\u0aae\u0ab1\u0001\u0000\u0000"+ + "\u0000\u0aaf\u0aad\u0001\u0000\u0000\u0000\u0aaf\u0ab0\u0001\u0000\u0000"+ + "\u0000\u0ab0\u01bf\u0001\u0000\u0000\u0000\u0ab1\u0aaf\u0001\u0000\u0000"+ + "\u0000\u0ab2\u0ab3\u0006\u00e0\uffff\uffff\u0000\u0ab3\u0ab4\u0003\u01c2"+ + "\u00e1\u0000\u0ab4\u0abd\u0001\u0000\u0000\u0000\u0ab5\u0ab6\n\u0002\u0000"+ + "\u0000\u0ab6\u0ab7\u0005Q\u0000\u0000\u0ab7\u0abc\u0003\u01c2\u00e1\u0000"+ + "\u0ab8\u0ab9\n\u0001\u0000\u0000\u0ab9\u0aba\u0005R\u0000\u0000\u0aba"+ + "\u0abc\u0003\u01c2\u00e1\u0000\u0abb\u0ab5\u0001\u0000\u0000\u0000\u0abb"+ + "\u0ab8\u0001\u0000\u0000\u0000\u0abc\u0abf\u0001\u0000\u0000\u0000\u0abd"+ + "\u0abb\u0001\u0000\u0000\u0000\u0abd\u0abe\u0001\u0000\u0000\u0000\u0abe"+ + "\u01c1\u0001\u0000\u0000\u0000\u0abf\u0abd\u0001\u0000\u0000\u0000\u0ac0"+ + "\u0ac1\u0006\u00e1\uffff\uffff\u0000\u0ac1\u0ac2\u0003\u01c4\u00e2\u0000"+ + "\u0ac2\u0ace\u0001\u0000\u0000\u0000\u0ac3\u0ac4\n\u0003\u0000\u0000\u0ac4"+ + "\u0ac5\u0005S\u0000\u0000\u0ac5\u0acd\u0003\u01c4\u00e2\u0000\u0ac6\u0ac7"+ + "\n\u0002\u0000\u0000\u0ac7\u0ac8\u0005T\u0000\u0000\u0ac8\u0acd\u0003"+ + "\u01c4\u00e2\u0000\u0ac9\u0aca\n\u0001\u0000\u0000\u0aca\u0acb\u0005X"+ + "\u0000\u0000\u0acb\u0acd\u0003\u01c4\u00e2\u0000\u0acc\u0ac3\u0001\u0000"+ + "\u0000\u0000\u0acc\u0ac6\u0001\u0000\u0000\u0000\u0acc\u0ac9\u0001\u0000"+ + "\u0000\u0000\u0acd\u0ad0\u0001\u0000\u0000\u0000\u0ace\u0acc\u0001\u0000"+ + "\u0000\u0000\u0ace\u0acf\u0001\u0000\u0000\u0000\u0acf\u01c3\u0001\u0000"+ + "\u0000\u0000\u0ad0\u0ace\u0001\u0000\u0000\u0000\u0ad1\u0ad9\u0003\u01c6"+ + "\u00e3\u0000\u0ad2\u0ad9\u0003\u01c8\u00e4\u0000\u0ad3\u0ad4\u0005Q\u0000"+ + "\u0000\u0ad4\u0ad9\u0003\u01c4\u00e2\u0000\u0ad5\u0ad6\u0005R\u0000\u0000"+ + "\u0ad6\u0ad9\u0003\u01c4\u00e2\u0000\u0ad7\u0ad9\u0003\u01ca\u00e5\u0000"+ + "\u0ad8\u0ad1\u0001\u0000\u0000\u0000\u0ad8\u0ad2\u0001\u0000\u0000\u0000"+ + "\u0ad8\u0ad3\u0001\u0000\u0000\u0000\u0ad8\u0ad5\u0001\u0000\u0000\u0000"+ + "\u0ad8\u0ad7\u0001\u0000\u0000\u0000\u0ad9\u01c5\u0001\u0000\u0000\u0000"+ + "\u0ada\u0adb\u0005O\u0000\u0000\u0adb\u0adc\u0003\u01c4\u00e2\u0000\u0adc"+ + "\u01c7\u0001\u0000\u0000\u0000\u0add\u0ade\u0005P\u0000\u0000\u0ade\u0adf"+ + "\u0003\u01c4\u00e2\u0000\u0adf\u01c9\u0001\u0000\u0000\u0000\u0ae0\u0ae7"+ + "\u0003\u01cc\u00e6\u0000\u0ae1\u0ae2\u0005F\u0000\u0000\u0ae2\u0ae7\u0003"+ + "\u01c4\u00e2\u0000\u0ae3\u0ae4\u0005E\u0000\u0000\u0ae4\u0ae7\u0003\u01c4"+ + "\u00e2\u0000\u0ae5\u0ae7\u0003\u01d6\u00eb\u0000\u0ae6\u0ae0\u0001\u0000"+ + "\u0000\u0000\u0ae6\u0ae1\u0001\u0000\u0000\u0000\u0ae6\u0ae3\u0001\u0000"+ + "\u0000\u0000\u0ae6\u0ae5\u0001\u0000\u0000\u0000\u0ae7\u01cb\u0001\u0000"+ + "\u0000\u0000\u0ae8\u0aeb\u0003\u015e\u00af\u0000\u0ae9\u0aeb\u00038\u001c"+ + "\u0000\u0aea\u0ae8\u0001\u0000\u0000\u0000\u0aea\u0ae9\u0001\u0000\u0000"+ + "\u0000\u0aeb\u0af0\u0001\u0000\u0000\u0000\u0aec\u0aef\u0003\u01d0\u00e8"+ + "\u0000\u0aed\u0aef\u0003\u01d4\u00ea\u0000\u0aee\u0aec\u0001\u0000\u0000"+ + "\u0000\u0aee\u0aed\u0001\u0000\u0000\u0000\u0aef\u0af2\u0001\u0000\u0000"+ + "\u0000\u0af0\u0aee\u0001\u0000\u0000\u0000\u0af0\u0af1\u0001\u0000\u0000"+ + "\u0000\u0af1\u01cd\u0001\u0000\u0000\u0000\u0af2\u0af0\u0001\u0000\u0000"+ + "\u0000\u0af3\u0af4\u0003\u01cc\u00e6\u0000\u0af4\u0af5\u0005O\u0000\u0000"+ + "\u0af5\u01cf\u0001\u0000\u0000\u0000\u0af6\u0af7\u0005O\u0000\u0000\u0af7"+ + "\u01d1\u0001\u0000\u0000\u0000\u0af8\u0af9\u0003\u01cc\u00e6\u0000\u0af9"+ + "\u0afa\u0005P\u0000\u0000\u0afa\u01d3\u0001\u0000\u0000\u0000\u0afb\u0afc"+ + "\u0005P\u0000\u0000\u0afc\u01d5\u0001\u0000\u0000\u0000\u0afd\u0afe\u0005"+ + "9\u0000\u0000\u0afe\u0aff\u0003\u0002\u0001\u0000\u0aff\u0b00\u0005:\u0000"+ + "\u0000\u0b00\u0b01\u0003\u01c4\u00e2\u0000\u0b01\u0b19\u0001\u0000\u0000"+ + "\u0000\u0b02\u0b03\u00059\u0000\u0000\u0b03\u0b07\u0003\n\u0005\u0000"+ + "\u0b04\u0b06\u0003&\u0013\u0000\u0b05\u0b04\u0001\u0000\u0000\u0000\u0b06"+ + "\u0b09\u0001\u0000\u0000\u0000\u0b07\u0b05\u0001\u0000\u0000\u0000\u0b07"+ + "\u0b08\u0001\u0000\u0000\u0000\u0b08\u0b0a\u0001\u0000\u0000\u0000\u0b09"+ + "\u0b07\u0001\u0000\u0000\u0000\u0b0a\u0b0b\u0005:\u0000\u0000\u0b0b\u0b0c"+ + "\u0003\u01ca\u00e5\u0000\u0b0c\u0b19\u0001\u0000\u0000\u0000\u0b0d\u0b0e"+ + "\u00059\u0000\u0000\u0b0e\u0b12\u0003\n\u0005\u0000\u0b0f\u0b11\u0003"+ + "&\u0013\u0000\u0b10\u0b0f\u0001\u0000\u0000\u0000\u0b11\u0b14\u0001\u0000"+ + "\u0000\u0000\u0b12\u0b10\u0001\u0000\u0000\u0000\u0b12\u0b13\u0001\u0000"+ + "\u0000\u0000\u0b13\u0b15\u0001\u0000\u0000\u0000\u0b14\u0b12\u0001\u0000"+ + "\u0000\u0000\u0b15\u0b16\u0005:\u0000\u0000\u0b16\u0b17\u0003\u019e\u00cf"+ + "\u0000\u0b17\u0b19\u0001\u0000\u0000\u0000\u0b18\u0afd\u0001\u0000\u0000"+ + "\u0000\u0b18\u0b02\u0001\u0000\u0000\u0000\u0b18\u0b0d\u0001\u0000\u0000"+ + "\u0000\u0b19\u01d7\u0001\u0000\u0000\u0000\u0142\u01dd\u01e4\u01e8\u01ec"+ + "\u01f5\u01f9\u01fd\u01ff\u0205\u020a\u0211\u0216\u0218\u021e\u0223\u0228"+ + "\u022d\u0238\u0246\u024b\u0253\u025a\u0260\u0265\u0270\u0273\u0281\u0286"+ + "\u028b\u0290\u0296\u02a0\u02a8\u02b2\u02ba\u02c6\u02ca\u02cf\u02d5\u02dd"+ + "\u02ea\u0307\u030b\u0310\u0316\u0319\u031c\u0328\u0333\u0341\u0348\u0351"+ + "\u0358\u035d\u036c\u0373\u0379\u037d\u0381\u0385\u0389\u038e\u0392\u0396"+ + "\u0398\u039d\u03a4\u03a9\u03ab\u03b1\u03b6\u03ba\u03cd\u03d2\u03e2\u03e7"+ + "\u03ed\u03f3\u03f5\u03f9\u03fe\u0402\u040a\u0411\u0419\u041c\u0421\u0429"+ + "\u042e\u0435\u043c\u0441\u0447\u0453\u0458\u045c\u0466\u046b\u0473\u0476"+ + "\u047b\u0483\u0486\u048b\u0490\u0495\u049a\u04a1\u04a6\u04ae\u04b3\u04b8"+ + "\u04bd\u04c3\u04c9\u04cc\u04cf\u04d8\u04de\u04e4\u04e7\u04ea\u04f2\u04f7"+ + "\u04fc\u0502\u0505\u0510\u0519\u0523\u0528\u0533\u0538\u0544\u0549\u0555"+ + "\u055f\u0564\u056c\u056f\u0576\u057e\u0584\u058d\u0597\u059b\u059e\u05a7"+ + "\u05b5\u05b8\u05c1\u05c6\u05cd\u05d2\u05da\u05e6\u05ed\u05fb\u0611\u0633"+ + "\u063f\u0645\u0651\u065e\u0678\u067c\u0681\u0685\u0689\u0691\u0695\u0699"+ + "\u06a0\u06a9\u06b1\u06c0\u06cc\u06d2\u06d8\u06ed\u06f2\u06f8\u0704\u070f"+ + "\u0719\u071c\u0721\u072a\u0730\u073a\u073f\u0748\u075f\u0769\u077f\u0786"+ + "\u078e\u0796\u07a1\u07b8\u07c2\u07cd\u07e3\u07e7\u07ec\u07f4\u07fa\u07fe"+ + "\u0802\u0806\u080c\u0811\u0816\u081a\u081e\u0824\u0829\u082e\u0832\u0836"+ + "\u0838\u083d\u0842\u0847\u084b\u084f\u0853\u0858\u0860\u0866\u086a\u086e"+ + "\u0872\u0878\u087d\u0882\u0886\u088a\u088c\u0891\u08a0\u08ae\u08ba\u08c3"+ + "\u08d1\u08de\u08e7\u08ed\u08f4\u08f9\u0900\u0905\u090c\u0911\u0918\u091d"+ + "\u0925\u092a\u092e\u0932\u0937\u093e\u0945\u094a\u0951\u0956\u095d\u0962"+ + "\u096a\u096f\u0973\u097a\u0980\u0987\u098e\u0995\u099d\u09a4\u09ac\u09b0"+ + "\u09b7\u09be\u09c5\u09cd\u09d4\u09dc\u09e2\u09e8\u09f4\u09fa\u0a00\u0a0b"+ + "\u0a14\u0a1b\u0a22\u0a27\u0a2b\u0a34\u0a3f\u0a49\u0a54\u0a5f\u0a6a\u0a75"+ + "\u0a81\u0a83\u0a98\u0a9a\u0aad\u0aaf\u0abb\u0abd\u0acc\u0ace\u0ad8\u0ae6"+ + "\u0aea\u0aee\u0af0\u0b07\u0b12\u0b18"; + 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/Assignment-2/Java-8/.antlr/Java8Parser.tokens b/Assignment-2/Java-8/.antlr/Java8Parser.tokens new file mode 100644 index 0000000..52ef1ee --- /dev/null +++ b/Assignment-2/Java-8/.antlr/Java8Parser.tokens @@ -0,0 +1,205 @@ +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +IntegerLiteral=51 +FloatingPointLiteral=52 +BooleanLiteral=53 +CharacterLiteral=54 +StringLiteral=55 +NullLiteral=56 +LPAREN=57 +RPAREN=58 +LBRACE=59 +RBRACE=60 +LBRACK=61 +RBRACK=62 +SEMI=63 +COMMA=64 +DOT=65 +ASSIGN=66 +GT=67 +LT=68 +BANG=69 +TILDE=70 +QUESTION=71 +COLON=72 +EQUAL=73 +LE=74 +GE=75 +NOTEQUAL=76 +AND=77 +OR=78 +INC=79 +DEC=80 +ADD=81 +SUB=82 +MUL=83 +DIV=84 +BITAND=85 +BITOR=86 +CARET=87 +MOD=88 +ARROW=89 +COLONCOLON=90 +ADD_ASSIGN=91 +SUB_ASSIGN=92 +MUL_ASSIGN=93 +DIV_ASSIGN=94 +AND_ASSIGN=95 +OR_ASSIGN=96 +XOR_ASSIGN=97 +MOD_ASSIGN=98 +LSHIFT_ASSIGN=99 +RSHIFT_ASSIGN=100 +URSHIFT_ASSIGN=101 +Identifier=102 +AT=103 +ELLIPSIS=104 +WS=105 +COMMENT=106 +LINE_COMMENT=107 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=56 +'('=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 +'@'=103 +'...'=104 diff --git a/Assignment-2/Java-8/Java8Lexer.class b/Assignment-2/Java-8/Java8Lexer.class new file mode 100644 index 0000000000000000000000000000000000000000..652c8035a513fac1d80c546dd93c158f7c97f85d GIT binary patch literal 30779 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 YSoSAH(ElhN;r^s}6b%1gM2A29U&OSw3;+NC literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Lexer.g4 b/Assignment-2/Java-8/Java8Lexer.g4 new file mode 100644 index 0000000..7beefbe --- /dev/null +++ b/Assignment-2/Java-8/Java8Lexer.g4 @@ -0,0 +1,977 @@ +/* + * [The "BSD license"] + * Copyright (c) 2014 Terence Parr + * Copyright (c) 2014 Sam Harwell + * Copyright (c) 2019 Student Main (Make it universal) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * A Java 8 grammar for ANTLR 4 derived from the Java Language Specification + * chapter 19. + * + * NOTE: This grammar results in a generated parser that is much slower + * than the Java 7 grammar in the grammars-v4/java directory. This + * one is, however, extremely close to the spec. + * + * You can test with + * + * $ antlr4 Java8.g4 + * $ javac *.java + * $ grun Java8 compilationUnit *.java + * + * Or, +~/antlr/code/grammars-v4/java8 $ java Test . +/Users/parrt/antlr/code/grammars-v4/java8/./Java8BaseListener.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Lexer.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Listener.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Parser.java +/Users/parrt/antlr/code/grammars-v4/java8/./Test.java +Total lexer+parser time 30844ms. + */ + +// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false +// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons ownLine +// $antlr-format alignColons trailing, singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true + +lexer grammar Java8Lexer; + +// LEXER + +// §3.9 Keywords + +ABSTRACT : 'abstract'; +ASSERT : 'assert'; +BOOLEAN : 'boolean'; +BREAK : 'break'; +BYTE : 'byte'; +CASE : 'case'; +CATCH : 'catch'; +CHAR : 'char'; +CLASS : 'class'; +CONST : 'const'; +CONTINUE : 'continue'; +DEFAULT : 'default'; +DO : 'do'; +DOUBLE : 'double'; +ELSE : 'else'; +ENUM : 'enum'; +EXTENDS : 'extends'; +FINAL : 'final'; +FINALLY : 'finally'; +FLOAT : 'float'; +FOR : 'for'; +IF : 'if'; +GOTO : 'goto'; +IMPLEMENTS : 'implements'; +IMPORT : 'import'; +INSTANCEOF : 'instanceof'; +INT : 'int'; +INTERFACE : 'interface'; +LONG : 'long'; +NATIVE : 'native'; +NEW : 'new'; +PACKAGE : 'package'; +PRIVATE : 'private'; +PROTECTED : 'protected'; +PUBLIC : 'public'; +RETURN : 'return'; +SHORT : 'short'; +STATIC : 'static'; +STRICTFP : 'strictfp'; +SUPER : 'super'; +SWITCH : 'switch'; +SYNCHRONIZED : 'synchronized'; +THIS : 'this'; +THROW : 'throw'; +THROWS : 'throws'; +TRANSIENT : 'transient'; +TRY : 'try'; +VOID : 'void'; +VOLATILE : 'volatile'; +WHILE : 'while'; + +// §3.10.1 Integer Literals + +IntegerLiteral: + DecimalIntegerLiteral + | HexIntegerLiteral + | OctalIntegerLiteral + | BinaryIntegerLiteral +; + +fragment DecimalIntegerLiteral: DecimalNumeral IntegerTypeSuffix?; + +fragment HexIntegerLiteral: HexNumeral IntegerTypeSuffix?; + +fragment OctalIntegerLiteral: OctalNumeral IntegerTypeSuffix?; + +fragment BinaryIntegerLiteral: BinaryNumeral IntegerTypeSuffix?; + +fragment IntegerTypeSuffix: [lL]; + +fragment DecimalNumeral: '0' | NonZeroDigit (Digits? | Underscores Digits); + +fragment Digits: Digit (DigitsAndUnderscores? Digit)?; + +fragment Digit: '0' | NonZeroDigit; + +fragment NonZeroDigit: [1-9]; + +fragment DigitsAndUnderscores: DigitOrUnderscore+; + +fragment DigitOrUnderscore: Digit | '_'; + +fragment Underscores: '_'+; + +fragment HexNumeral: '0' [xX] HexDigits; + +fragment HexDigits: HexDigit (HexDigitsAndUnderscores? HexDigit)?; + +fragment HexDigit: [0-9a-fA-F]; + +fragment HexDigitsAndUnderscores: HexDigitOrUnderscore+; + +fragment HexDigitOrUnderscore: HexDigit | '_'; + +fragment OctalNumeral: '0' Underscores? OctalDigits; + +fragment OctalDigits: OctalDigit (OctalDigitsAndUnderscores? OctalDigit)?; + +fragment OctalDigit: [0-7]; + +fragment OctalDigitsAndUnderscores: OctalDigitOrUnderscore+; + +fragment OctalDigitOrUnderscore: OctalDigit | '_'; + +fragment BinaryNumeral: '0' [bB] BinaryDigits; + +fragment BinaryDigits: BinaryDigit (BinaryDigitsAndUnderscores? BinaryDigit)?; + +fragment BinaryDigit: [01]; + +fragment BinaryDigitsAndUnderscores: BinaryDigitOrUnderscore+; + +fragment BinaryDigitOrUnderscore: BinaryDigit | '_'; + +// §3.10.2 Floating-Point Literals + +FloatingPointLiteral: DecimalFloatingPointLiteral | HexadecimalFloatingPointLiteral; + +fragment DecimalFloatingPointLiteral: + Digits '.' Digits? ExponentPart? FloatTypeSuffix? + | '.' Digits ExponentPart? FloatTypeSuffix? + | Digits ExponentPart FloatTypeSuffix? + | Digits FloatTypeSuffix +; + +fragment ExponentPart: ExponentIndicator SignedInteger; + +fragment ExponentIndicator: [eE]; + +fragment SignedInteger: Sign? Digits; + +fragment Sign: [+-]; + +fragment FloatTypeSuffix: [fFdD]; + +fragment HexadecimalFloatingPointLiteral: HexSignificand BinaryExponent FloatTypeSuffix?; + +fragment HexSignificand: HexNumeral '.'? | '0' [xX] HexDigits? '.' HexDigits; + +fragment BinaryExponent: BinaryExponentIndicator SignedInteger; + +fragment BinaryExponentIndicator: [pP]; + +// §3.10.3 Boolean Literals + +BooleanLiteral: 'true' | 'false'; + +// §3.10.4 Character Literals + +CharacterLiteral: '\'' SingleCharacter '\'' | '\'' EscapeSequence '\''; + +fragment SingleCharacter: ~['\\\r\n]; + +// §3.10.5 String Literals + +StringLiteral: '"' StringCharacters? '"'; + +fragment StringCharacters: StringCharacter+; + +fragment StringCharacter: ~["\\\r\n] | EscapeSequence; + +// §3.10.6 Escape Sequences for Character and String Literals + +fragment EscapeSequence: + '\\' 'u005c'? [btnfr"'\\] + | OctalEscape + | UnicodeEscape // This is not in the spec but prevents having to preprocess the input +; + +fragment OctalEscape: + '\\' 'u005c'? OctalDigit + | '\\' 'u005c'? OctalDigit OctalDigit + | '\\' 'u005c'? ZeroToThree OctalDigit OctalDigit +; + +fragment ZeroToThree: [0-3]; + +// This is not in the spec but prevents having to preprocess the input +fragment UnicodeEscape: '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit; + +// §3.10.7 The Null Literal + +NullLiteral: 'null'; + +// §3.11 Separators + +LPAREN : '('; +RPAREN : ')'; +LBRACE : '{'; +RBRACE : '}'; +LBRACK : '['; +RBRACK : ']'; +SEMI : ';'; +COMMA : ','; +DOT : '.'; + +// §3.12 Operators + +ASSIGN : '='; +GT : '>'; +LT : '<'; +BANG : '!'; +TILDE : '~'; +QUESTION : '?'; +COLON : ':'; +EQUAL : '=='; +LE : '<='; +GE : '>='; +NOTEQUAL : '!='; +AND : '&&'; +OR : '||'; +INC : '++'; +DEC : '--'; +ADD : '+'; +SUB : '-'; +MUL : '*'; +DIV : '/'; +BITAND : '&'; +BITOR : '|'; +CARET : '^'; +MOD : '%'; +ARROW : '->'; +COLONCOLON : '::'; + +ADD_ASSIGN : '+='; +SUB_ASSIGN : '-='; +MUL_ASSIGN : '*='; +DIV_ASSIGN : '/='; +AND_ASSIGN : '&='; +OR_ASSIGN : '|='; +XOR_ASSIGN : '^='; +MOD_ASSIGN : '%='; +LSHIFT_ASSIGN : '<<='; +RSHIFT_ASSIGN : '>>='; +URSHIFT_ASSIGN : '>>>='; + +// §3.8 Identifiers (must appear after all keywords in the grammar) + +Identifier: IdentifierStart IdentifierPart*; +/* +fragment +JavaLetter + : [a-zA-Z$_] // these are the "java letters" below 0x7F + | // covers all characters above 0x7F which are not a surrogate + ~[\u0000-\u007F\uD800-\uDBFF] {this.wasJavaIdentiferStart()}? + | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + [\uD800-\uDBFF] [\uDC00-\uDFFF] {this.wasJavaIdentiferStartUTF16()}? + ; + +fragment +JavaLetterOrDigit + : [a-zA-Z0-9$_] // these are the "java letters or digits" below 0x7F + | // covers all characters above 0x7F which are not a surrogate + ~[\u0000-\u007F\uD800-\uDBFF] {this.wasJavaIdentiferPart()}? + | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + [\uD800-\uDBFF] [\uDC00-\uDFFF] {this.wasJavaIdentiferPartUTF16()}? + ;*/ + +// Dropped SMP support as ANTLR has no native support for it +fragment IdentifierStart: + [\u0024] + | [\u0041-\u005A] + | [\u005F] + | [\u0061-\u007A] + | [\u00A2-\u00A5] + | [\u00AA] + | [\u00B5] + | [\u00BA] + | [\u00C0-\u00D6] + | [\u00D8-\u00F6] + | [\u00F8-\u02C1] + | [\u02C6-\u02D1] + | [\u02E0-\u02E4] + | [\u02EC] + | [\u02EE] + | [\u0370-\u0374] + | [\u0376-\u0377] + | [\u037A-\u037D] + | [\u037F] + | [\u0386] + | [\u0388-\u038A] + | [\u038C] + | [\u038E-\u03A1] + | [\u03A3-\u03F5] + | [\u03F7-\u0481] + | [\u048A-\u052F] + | [\u0531-\u0556] + | [\u0559] + | [\u0561-\u0587] + | [\u058F] + | [\u05D0-\u05EA] + | [\u05F0-\u05F2] + | [\u060B] + | [\u0620-\u064A] + | [\u066E-\u066F] + | [\u0671-\u06D3] + | [\u06D5] + | [\u06E5-\u06E6] + | [\u06EE-\u06EF] + | [\u06FA-\u06FC] + | [\u06FF] + | [\u0710] + | [\u0712-\u072F] + | [\u074D-\u07A5] + | [\u07B1] + | [\u07CA-\u07EA] + | [\u07F4-\u07F5] + | [\u07FA] + | [\u0800-\u0815] + | [\u081A] + | [\u0824] + | [\u0828] + | [\u0840-\u0858] + | [\u0860-\u086A] + | [\u08A0-\u08B4] + | [\u08B6-\u08BD] + | [\u0904-\u0939] + | [\u093D] + | [\u0950] + | [\u0958-\u0961] + | [\u0971-\u0980] + | [\u0985-\u098C] + | [\u098F-\u0990] + | [\u0993-\u09A8] + | [\u09AA-\u09B0] + | [\u09B2] + | [\u09B6-\u09B9] + | [\u09BD] + | [\u09CE] + | [\u09DC-\u09DD] + | [\u09DF-\u09E1] + | [\u09F0-\u09F3] + | [\u09FB-\u09FC] + | [\u0A05-\u0A0A] + | [\u0A0F-\u0A10] + | [\u0A13-\u0A28] + | [\u0A2A-\u0A30] + | [\u0A32-\u0A33] + | [\u0A35-\u0A36] + | [\u0A38-\u0A39] + | [\u0A59-\u0A5C] + | [\u0A5E] + | [\u0A72-\u0A74] + | [\u0A85-\u0A8D] + | [\u0A8F-\u0A91] + | [\u0A93-\u0AA8] + | [\u0AAA-\u0AB0] + | [\u0AB2-\u0AB3] + | [\u0AB5-\u0AB9] + | [\u0ABD] + | [\u0AD0] + | [\u0AE0-\u0AE1] + | [\u0AF1] + | [\u0AF9] + | [\u0B05-\u0B0C] + | [\u0B0F-\u0B10] + | [\u0B13-\u0B28] + | [\u0B2A-\u0B30] + | [\u0B32-\u0B33] + | [\u0B35-\u0B39] + | [\u0B3D] + | [\u0B5C-\u0B5D] + | [\u0B5F-\u0B61] + | [\u0B71] + | [\u0B83] + | [\u0B85-\u0B8A] + | [\u0B8E-\u0B90] + | [\u0B92-\u0B95] + | [\u0B99-\u0B9A] + | [\u0B9C] + | [\u0B9E-\u0B9F] + | [\u0BA3-\u0BA4] + | [\u0BA8-\u0BAA] + | [\u0BAE-\u0BB9] + | [\u0BD0] + | [\u0BF9] + | [\u0C05-\u0C0C] + | [\u0C0E-\u0C10] + | [\u0C12-\u0C28] + | [\u0C2A-\u0C39] + | [\u0C3D] + | [\u0C58-\u0C5A] + | [\u0C60-\u0C61] + | [\u0C80] + | [\u0C85-\u0C8C] + | [\u0C8E-\u0C90] + | [\u0C92-\u0CA8] + | [\u0CAA-\u0CB3] + | [\u0CB5-\u0CB9] + | [\u0CBD] + | [\u0CDE] + | [\u0CE0-\u0CE1] + | [\u0CF1-\u0CF2] + | [\u0D05-\u0D0C] + | [\u0D0E-\u0D10] + | [\u0D12-\u0D3A] + | [\u0D3D] + | [\u0D4E] + | [\u0D54-\u0D56] + | [\u0D5F-\u0D61] + | [\u0D7A-\u0D7F] + | [\u0D85-\u0D96] + | [\u0D9A-\u0DB1] + | [\u0DB3-\u0DBB] + | [\u0DBD] + | [\u0DC0-\u0DC6] + | [\u0E01-\u0E30] + | [\u0E32-\u0E33] + | [\u0E3F-\u0E46] + | [\u0E81-\u0E82] + | [\u0E84] + | [\u0E87-\u0E88] + | [\u0E8A] + | [\u0E8D] + | [\u0E94-\u0E97] + | [\u0E99-\u0E9F] + | [\u0EA1-\u0EA3] + | [\u0EA5] + | [\u0EA7] + | [\u0EAA-\u0EAB] + | [\u0EAD-\u0EB0] + | [\u0EB2-\u0EB3] + | [\u0EBD] + | [\u0EC0-\u0EC4] + | [\u0EC6] + | [\u0EDC-\u0EDF] + | [\u0F00] + | [\u0F40-\u0F47] + | [\u0F49-\u0F6C] + | [\u0F88-\u0F8C] + | [\u1000-\u102A] + | [\u103F] + | [\u1050-\u1055] + | [\u105A-\u105D] + | [\u1061] + | [\u1065-\u1066] + | [\u106E-\u1070] + | [\u1075-\u1081] + | [\u108E] + | [\u10A0-\u10C5] + | [\u10C7] + | [\u10CD] + | [\u10D0-\u10FA] + | [\u10FC-\u1248] + | [\u124A-\u124D] + | [\u1250-\u1256] + | [\u1258] + | [\u125A-\u125D] + | [\u1260-\u1288] + | [\u128A-\u128D] + | [\u1290-\u12B0] + | [\u12B2-\u12B5] + | [\u12B8-\u12BE] + | [\u12C0] + | [\u12C2-\u12C5] + | [\u12C8-\u12D6] + | [\u12D8-\u1310] + | [\u1312-\u1315] + | [\u1318-\u135A] + | [\u1380-\u138F] + | [\u13A0-\u13F5] + | [\u13F8-\u13FD] + | [\u1401-\u166C] + | [\u166F-\u167F] + | [\u1681-\u169A] + | [\u16A0-\u16EA] + | [\u16EE-\u16F8] + | [\u1700-\u170C] + | [\u170E-\u1711] + | [\u1720-\u1731] + | [\u1740-\u1751] + | [\u1760-\u176C] + | [\u176E-\u1770] + | [\u1780-\u17B3] + | [\u17D7] + | [\u17DB-\u17DC] + | [\u1820-\u1877] + | [\u1880-\u1884] + | [\u1887-\u18A8] + | [\u18AA] + | [\u18B0-\u18F5] + | [\u1900-\u191E] + | [\u1950-\u196D] + | [\u1970-\u1974] + | [\u1980-\u19AB] + | [\u19B0-\u19C9] + | [\u1A00-\u1A16] + | [\u1A20-\u1A54] + | [\u1AA7] + | [\u1B05-\u1B33] + | [\u1B45-\u1B4B] + | [\u1B83-\u1BA0] + | [\u1BAE-\u1BAF] + | [\u1BBA-\u1BE5] + | [\u1C00-\u1C23] + | [\u1C4D-\u1C4F] + | [\u1C5A-\u1C7D] + | [\u1C80-\u1C88] + | [\u1CE9-\u1CEC] + | [\u1CEE-\u1CF1] + | [\u1CF5-\u1CF6] + | [\u1D00-\u1DBF] + | [\u1E00-\u1F15] + | [\u1F18-\u1F1D] + | [\u1F20-\u1F45] + | [\u1F48-\u1F4D] + | [\u1F50-\u1F57] + | [\u1F59] + | [\u1F5B] + | [\u1F5D] + | [\u1F5F-\u1F7D] + | [\u1F80-\u1FB4] + | [\u1FB6-\u1FBC] + | [\u1FBE] + | [\u1FC2-\u1FC4] + | [\u1FC6-\u1FCC] + | [\u1FD0-\u1FD3] + | [\u1FD6-\u1FDB] + | [\u1FE0-\u1FEC] + | [\u1FF2-\u1FF4] + | [\u1FF6-\u1FFC] + | [\u203F-\u2040] + | [\u2054] + | [\u2071] + | [\u207F] + | [\u2090-\u209C] + | [\u20A0-\u20BF] + | [\u2102] + | [\u2107] + | [\u210A-\u2113] + | [\u2115] + | [\u2119-\u211D] + | [\u2124] + | [\u2126] + | [\u2128] + | [\u212A-\u212D] + | [\u212F-\u2139] + | [\u213C-\u213F] + | [\u2145-\u2149] + | [\u214E] + | [\u2160-\u2188] + | [\u2C00-\u2C2E] + | [\u2C30-\u2C5E] + | [\u2C60-\u2CE4] + | [\u2CEB-\u2CEE] + | [\u2CF2-\u2CF3] + | [\u2D00-\u2D25] + | [\u2D27] + | [\u2D2D] + | [\u2D30-\u2D67] + | [\u2D6F] + | [\u2D80-\u2D96] + | [\u2DA0-\u2DA6] + | [\u2DA8-\u2DAE] + | [\u2DB0-\u2DB6] + | [\u2DB8-\u2DBE] + | [\u2DC0-\u2DC6] + | [\u2DC8-\u2DCE] + | [\u2DD0-\u2DD6] + | [\u2DD8-\u2DDE] + | [\u2E2F] + | [\u3005-\u3007] + | [\u3021-\u3029] + | [\u3031-\u3035] + | [\u3038-\u303C] + | [\u3041-\u3096] + | [\u309D-\u309F] + | [\u30A1-\u30FA] + | [\u30FC-\u30FF] + | [\u3105-\u312E] + | [\u3131-\u318E] + | [\u31A0-\u31BA] + | [\u31F0-\u31FF] + | [\u3400-\u4DB5] + | [\u4E00-\u9FEA] + | [\uA000-\uA48C] + | [\uA4D0-\uA4FD] + | [\uA500-\uA60C] + | [\uA610-\uA61F] + | [\uA62A-\uA62B] + | [\uA640-\uA66E] + | [\uA67F-\uA69D] + | [\uA6A0-\uA6EF] + | [\uA717-\uA71F] + | [\uA722-\uA788] + | [\uA78B-\uA7AE] + | [\uA7B0-\uA7B7] + | [\uA7F7-\uA801] + | [\uA803-\uA805] + | [\uA807-\uA80A] + | [\uA80C-\uA822] + | [\uA838] + | [\uA840-\uA873] + | [\uA882-\uA8B3] + | [\uA8F2-\uA8F7] + | [\uA8FB] + | [\uA8FD] + | [\uA90A-\uA925] + | [\uA930-\uA946] + | [\uA960-\uA97C] + | [\uA984-\uA9B2] + | [\uA9CF] + | [\uA9E0-\uA9E4] + | [\uA9E6-\uA9EF] + | [\uA9FA-\uA9FE] + | [\uAA00-\uAA28] + | [\uAA40-\uAA42] + | [\uAA44-\uAA4B] + | [\uAA60-\uAA76] + | [\uAA7A] + | [\uAA7E-\uAAAF] + | [\uAAB1] + | [\uAAB5-\uAAB6] + | [\uAAB9-\uAABD] + | [\uAAC0] + | [\uAAC2] + | [\uAADB-\uAADD] + | [\uAAE0-\uAAEA] + | [\uAAF2-\uAAF4] + | [\uAB01-\uAB06] + | [\uAB09-\uAB0E] + | [\uAB11-\uAB16] + | [\uAB20-\uAB26] + | [\uAB28-\uAB2E] + | [\uAB30-\uAB5A] + | [\uAB5C-\uAB65] + | [\uAB70-\uABE2] + | [\uAC00-\uD7A3] + | [\uD7B0-\uD7C6] + | [\uD7CB-\uD7FB] + | [\uF900-\uFA6D] + | [\uFA70-\uFAD9] + | [\uFB00-\uFB06] + | [\uFB13-\uFB17] + | [\uFB1D] + | [\uFB1F-\uFB28] + | [\uFB2A-\uFB36] + | [\uFB38-\uFB3C] + | [\uFB3E] + | [\uFB40-\uFB41] + | [\uFB43-\uFB44] + | [\uFB46-\uFBB1] + | [\uFBD3-\uFD3D] + | [\uFD50-\uFD8F] + | [\uFD92-\uFDC7] + | [\uFDF0-\uFDFC] + | [\uFE33-\uFE34] + | [\uFE4D-\uFE4F] + | [\uFE69] + | [\uFE70-\uFE74] + | [\uFE76-\uFEFC] + | [\uFF04] + | [\uFF21-\uFF3A] + | [\uFF3F] + | [\uFF41-\uFF5A] + | [\uFF66-\uFFBE] + | [\uFFC2-\uFFC7] + | [\uFFCA-\uFFCF] + | [\uFFD2-\uFFD7] + | [\uFFDA-\uFFDC] + | [\uFFE0-\uFFE1] + | [\uFFE5-\uFFE6] +; + +fragment IdentifierPart: + IdentifierStart + | [\u0030-\u0039] + | [\u007F-\u009F] + | [\u00AD] + | [\u0300-\u036F] + | [\u0483-\u0487] + | [\u0591-\u05BD] + | [\u05BF] + | [\u05C1-\u05C2] + | [\u05C4-\u05C5] + | [\u05C7] + | [\u0600-\u0605] + | [\u0610-\u061A] + | [\u061C] + | [\u064B-\u0669] + | [\u0670] + | [\u06D6-\u06DD] + | [\u06DF-\u06E4] + | [\u06E7-\u06E8] + | [\u06EA-\u06ED] + | [\u06F0-\u06F9] + | [\u070F] + | [\u0711] + | [\u0730-\u074A] + | [\u07A6-\u07B0] + | [\u07C0-\u07C9] + | [\u07EB-\u07F3] + | [\u0816-\u0819] + | [\u081B-\u0823] + | [\u0825-\u0827] + | [\u0829-\u082D] + | [\u0859-\u085B] + | [\u08D4-\u0903] + | [\u093A-\u093C] + | [\u093E-\u094F] + | [\u0951-\u0957] + | [\u0962-\u0963] + | [\u0966-\u096F] + | [\u0981-\u0983] + | [\u09BC] + | [\u09BE-\u09C4] + | [\u09C7-\u09C8] + | [\u09CB-\u09CD] + | [\u09D7] + | [\u09E2-\u09E3] + | [\u09E6-\u09EF] + | [\u0A01-\u0A03] + | [\u0A3C] + | [\u0A3E-\u0A42] + | [\u0A47-\u0A48] + | [\u0A4B-\u0A4D] + | [\u0A51] + | [\u0A66-\u0A71] + | [\u0A75] + | [\u0A81-\u0A83] + | [\u0ABC] + | [\u0ABE-\u0AC5] + | [\u0AC7-\u0AC9] + | [\u0ACB-\u0ACD] + | [\u0AE2-\u0AE3] + | [\u0AE6-\u0AEF] + | [\u0AFA-\u0AFF] + | [\u0B01-\u0B03] + | [\u0B3C] + | [\u0B3E-\u0B44] + | [\u0B47-\u0B48] + | [\u0B4B-\u0B4D] + | [\u0B56-\u0B57] + | [\u0B62-\u0B63] + | [\u0B66-\u0B6F] + | [\u0B82] + | [\u0BBE-\u0BC2] + | [\u0BC6-\u0BC8] + | [\u0BCA-\u0BCD] + | [\u0BD7] + | [\u0BE6-\u0BEF] + | [\u0C00-\u0C03] + | [\u0C3E-\u0C44] + | [\u0C46-\u0C48] + | [\u0C4A-\u0C4D] + | [\u0C55-\u0C56] + | [\u0C62-\u0C63] + | [\u0C66-\u0C6F] + | [\u0C81-\u0C83] + | [\u0CBC] + | [\u0CBE-\u0CC4] + | [\u0CC6-\u0CC8] + | [\u0CCA-\u0CCD] + | [\u0CD5-\u0CD6] + | [\u0CE2-\u0CE3] + | [\u0CE6-\u0CEF] + | [\u0D00-\u0D03] + | [\u0D3B-\u0D3C] + | [\u0D3E-\u0D44] + | [\u0D46-\u0D48] + | [\u0D4A-\u0D4D] + | [\u0D57] + | [\u0D62-\u0D63] + | [\u0D66-\u0D6F] + | [\u0D82-\u0D83] + | [\u0DCA] + | [\u0DCF-\u0DD4] + | [\u0DD6] + | [\u0DD8-\u0DDF] + | [\u0DE6-\u0DEF] + | [\u0DF2-\u0DF3] + | [\u0E31] + | [\u0E34-\u0E3A] + | [\u0E47-\u0E4E] + | [\u0E50-\u0E59] + | [\u0EB1] + | [\u0EB4-\u0EB9] + | [\u0EBB-\u0EBC] + | [\u0EC8-\u0ECD] + | [\u0ED0-\u0ED9] + | [\u0F18-\u0F19] + | [\u0F20-\u0F29] + | [\u0F35] + | [\u0F37] + | [\u0F39] + | [\u0F3E-\u0F3F] + | [\u0F71-\u0F84] + | [\u0F86-\u0F87] + | [\u0F8D-\u0F97] + | [\u0F99-\u0FBC] + | [\u0FC6] + | [\u102B-\u103E] + | [\u1040-\u1049] + | [\u1056-\u1059] + | [\u105E-\u1060] + | [\u1062-\u1064] + | [\u1067-\u106D] + | [\u1071-\u1074] + | [\u1082-\u108D] + | [\u108F-\u109D] + | [\u135D-\u135F] + | [\u1712-\u1714] + | [\u1732-\u1734] + | [\u1752-\u1753] + | [\u1772-\u1773] + | [\u17B4-\u17D3] + | [\u17DD] + | [\u17E0-\u17E9] + | [\u180B-\u180E] + | [\u1810-\u1819] + | [\u1885-\u1886] + | [\u18A9] + | [\u1920-\u192B] + | [\u1930-\u193B] + | [\u1946-\u194F] + | [\u19D0-\u19D9] + | [\u1A17-\u1A1B] + | [\u1A55-\u1A5E] + | [\u1A60-\u1A7C] + | [\u1A7F-\u1A89] + | [\u1A90-\u1A99] + | [\u1AB0-\u1ABD] + | [\u1B00-\u1B04] + | [\u1B34-\u1B44] + | [\u1B50-\u1B59] + | [\u1B6B-\u1B73] + | [\u1B80-\u1B82] + | [\u1BA1-\u1BAD] + | [\u1BB0-\u1BB9] + | [\u1BE6-\u1BF3] + | [\u1C24-\u1C37] + | [\u1C40-\u1C49] + | [\u1C50-\u1C59] + | [\u1CD0-\u1CD2] + | [\u1CD4-\u1CE8] + | [\u1CED] + | [\u1CF2-\u1CF4] + | [\u1CF7-\u1CF9] + | [\u1DC0-\u1DF9] + | [\u1DFB-\u1DFF] + | [\u200B-\u200F] + | [\u202A-\u202E] + | [\u2060-\u2064] + | [\u2066-\u206F] + | [\u20D0-\u20DC] + | [\u20E1] + | [\u20E5-\u20F0] + | [\u2CEF-\u2CF1] + | [\u2D7F] + | [\u2DE0-\u2DFF] + | [\u302A-\u302F] + | [\u3099-\u309A] + | [\uA620-\uA629] + | [\uA66F] + | [\uA674-\uA67D] + | [\uA69E-\uA69F] + | [\uA6F0-\uA6F1] + | [\uA802] + | [\uA806] + | [\uA80B] + | [\uA823-\uA827] + | [\uA880-\uA881] + | [\uA8B4-\uA8C5] + | [\uA8D0-\uA8D9] + | [\uA8E0-\uA8F1] + | [\uA900-\uA909] + | [\uA926-\uA92D] + | [\uA947-\uA953] + | [\uA980-\uA983] + | [\uA9B3-\uA9C0] + | [\uA9D0-\uA9D9] + | [\uA9E5] + | [\uA9F0-\uA9F9] + | [\uAA29-\uAA36] + | [\uAA43] + | [\uAA4C-\uAA4D] + | [\uAA50-\uAA59] + | [\uAA7B-\uAA7D] + | [\uAAB0] + | [\uAAB2-\uAAB4] + | [\uAAB7-\uAAB8] + | [\uAABE-\uAABF] + | [\uAAC1] + | [\uAAEB-\uAAEF] + | [\uAAF5-\uAAF6] + | [\uABE3-\uABEA] + | [\uABEC-\uABED] + | [\uABF0-\uABF9] + | [\uFB1E] + | [\uFE00-\uFE0F] + | [\uFE20-\uFE2F] + | [\uFEFF] + | [\uFF10-\uFF19] + | [\uFFF9-\uFFFB] +; + +// +// Additional symbols not defined in the lexical specification +// + +AT : '@'; +ELLIPSIS : '...'; + +// +// Whitespace and comments +// + +WS: [ \t\r\n\u000C]+ -> skip; + +COMMENT: '/*' .*? '*/' -> skip; + +LINE_COMMENT: '//' ~[\r\n]* -> skip; \ No newline at end of file diff --git a/Assignment-2/Java-8/Java8Lexer.interp b/Assignment-2/Java-8/Java8Lexer.interp new file mode 100644 index 0000000..d57f723 --- /dev/null +++ b/Assignment-2/Java-8/Java8Lexer.interp @@ -0,0 +1,384 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'native' +'new' +'package' +'private' +'protected' +'public' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'transient' +'try' +'void' +'volatile' +'while' +null +null +null +null +null +'null' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'->' +'::' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +null +'@' +'...' +null +null +null + +token symbolic names: +null +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +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 + +rule names: +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 +IdentifierStart +IdentifierPart +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 107, 1117, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 651, 8, 50, 1, 51, 1, 51, 3, 51, 655, 8, 51, 1, 52, 1, 52, 3, 52, 659, 8, 52, 1, 53, 1, 53, 3, 53, 663, 8, 53, 1, 54, 1, 54, 3, 54, 667, 8, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 3, 56, 674, 8, 56, 1, 56, 1, 56, 1, 56, 3, 56, 679, 8, 56, 3, 56, 681, 8, 56, 1, 57, 1, 57, 3, 57, 685, 8, 57, 1, 57, 3, 57, 688, 8, 57, 1, 58, 1, 58, 3, 58, 692, 8, 58, 1, 59, 1, 59, 1, 60, 4, 60, 697, 8, 60, 11, 60, 12, 60, 698, 1, 61, 1, 61, 3, 61, 703, 8, 61, 1, 62, 4, 62, 706, 8, 62, 11, 62, 12, 62, 707, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 3, 64, 716, 8, 64, 1, 64, 3, 64, 719, 8, 64, 1, 65, 1, 65, 1, 66, 4, 66, 724, 8, 66, 11, 66, 12, 66, 725, 1, 67, 1, 67, 3, 67, 730, 8, 67, 1, 68, 1, 68, 3, 68, 734, 8, 68, 1, 68, 1, 68, 1, 69, 1, 69, 3, 69, 740, 8, 69, 1, 69, 3, 69, 743, 8, 69, 1, 70, 1, 70, 1, 71, 4, 71, 748, 8, 71, 11, 71, 12, 71, 749, 1, 72, 1, 72, 3, 72, 754, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 3, 74, 762, 8, 74, 1, 74, 3, 74, 765, 8, 74, 1, 75, 1, 75, 1, 76, 4, 76, 770, 8, 76, 11, 76, 12, 76, 771, 1, 77, 1, 77, 3, 77, 776, 8, 77, 1, 78, 1, 78, 3, 78, 780, 8, 78, 1, 79, 1, 79, 1, 79, 3, 79, 785, 8, 79, 1, 79, 3, 79, 788, 8, 79, 1, 79, 3, 79, 791, 8, 79, 1, 79, 1, 79, 1, 79, 3, 79, 796, 8, 79, 1, 79, 3, 79, 799, 8, 79, 1, 79, 1, 79, 1, 79, 3, 79, 804, 8, 79, 1, 79, 1, 79, 1, 79, 3, 79, 809, 8, 79, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 3, 82, 817, 8, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 3, 85, 828, 8, 85, 1, 86, 1, 86, 3, 86, 832, 8, 86, 1, 86, 1, 86, 1, 86, 3, 86, 837, 8, 86, 1, 86, 1, 86, 3, 86, 841, 8, 86, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 3, 89, 857, 8, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 867, 8, 90, 1, 91, 1, 91, 1, 92, 1, 92, 3, 92, 873, 8, 92, 1, 92, 1, 92, 1, 93, 4, 93, 878, 8, 93, 11, 93, 12, 93, 879, 1, 94, 1, 94, 3, 94, 884, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 3, 95, 892, 8, 95, 1, 95, 1, 95, 1, 95, 3, 95, 897, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 905, 8, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 914, 8, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 925, 8, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 931, 8, 96, 1, 97, 1, 97, 1, 98, 1, 98, 4, 98, 937, 8, 98, 11, 98, 12, 98, 938, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 101, 1, 101, 1, 102, 1, 102, 1, 103, 1, 103, 1, 104, 1, 104, 1, 105, 1, 105, 1, 106, 1, 106, 1, 107, 1, 107, 1, 108, 1, 108, 1, 109, 1, 109, 1, 110, 1, 110, 1, 111, 1, 111, 1, 112, 1, 112, 1, 113, 1, 113, 1, 114, 1, 114, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 125, 1, 125, 1, 126, 1, 126, 1, 127, 1, 127, 1, 128, 1, 128, 1, 129, 1, 129, 1, 130, 1, 130, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 5, 145, 1068, 8, 145, 10, 145, 12, 145, 1071, 9, 145, 1, 146, 3, 146, 1074, 8, 146, 1, 147, 1, 147, 3, 147, 1078, 8, 147, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 4, 150, 1087, 8, 150, 11, 150, 12, 150, 1088, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 5, 151, 1097, 8, 151, 10, 151, 12, 151, 1100, 9, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 5, 152, 1111, 8, 152, 10, 152, 12, 152, 1114, 9, 152, 1, 152, 1, 152, 1, 1098, 0, 153, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 0, 151, 0, 153, 0, 155, 0, 157, 52, 159, 0, 161, 0, 163, 0, 165, 0, 167, 0, 169, 0, 171, 0, 173, 0, 175, 0, 177, 0, 179, 53, 181, 54, 183, 0, 185, 55, 187, 0, 189, 0, 191, 0, 193, 0, 195, 0, 197, 0, 199, 56, 201, 57, 203, 58, 205, 59, 207, 60, 209, 61, 211, 62, 213, 63, 215, 64, 217, 65, 219, 66, 221, 67, 223, 68, 225, 69, 227, 70, 229, 71, 231, 72, 233, 73, 235, 74, 237, 75, 239, 76, 241, 77, 243, 78, 245, 79, 247, 80, 249, 81, 251, 82, 253, 83, 255, 84, 257, 85, 259, 86, 261, 87, 263, 88, 265, 89, 267, 90, 269, 91, 271, 92, 273, 93, 275, 94, 277, 95, 279, 96, 281, 97, 283, 98, 285, 99, 287, 100, 289, 101, 291, 102, 293, 0, 295, 0, 297, 103, 299, 104, 301, 105, 303, 106, 305, 107, 1, 0, 19, 2, 0, 76, 76, 108, 108, 1, 0, 49, 57, 2, 0, 88, 88, 120, 120, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 55, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 80, 80, 112, 112, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 8, 0, 34, 34, 39, 39, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 1, 0, 48, 51, 402, 0, 36, 36, 65, 90, 95, 95, 97, 122, 162, 165, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1377, 1415, 1423, 1423, 1488, 1514, 1520, 1522, 1547, 1547, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2547, 2555, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2801, 2801, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3065, 3065, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3647, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6107, 6108, 6176, 6263, 6272, 6276, 6279, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8352, 8383, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12590, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40938, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42926, 42928, 42935, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43064, 43064, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43261, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43877, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65020, 65075, 65076, 65101, 65103, 65129, 65129, 65136, 65140, 65142, 65276, 65284, 65284, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65505, 65509, 65510, 228, 0, 48, 57, 127, 159, 173, 173, 768, 879, 1155, 1159, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1536, 1541, 1552, 1562, 1564, 1564, 1611, 1641, 1648, 1648, 1750, 1757, 1759, 1764, 1767, 1768, 1770, 1773, 1776, 1785, 1807, 1807, 1809, 1809, 1840, 1866, 1958, 1968, 1984, 1993, 2027, 2035, 2070, 2073, 2075, 2083, 2085, 2087, 2089, 2093, 2137, 2139, 2260, 2307, 2362, 2364, 2366, 2383, 2385, 2391, 2402, 2403, 2406, 2415, 2433, 2435, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2530, 2531, 2534, 2543, 2561, 2563, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2662, 2673, 2677, 2677, 2689, 2691, 2748, 2748, 2750, 2757, 2759, 2761, 2763, 2765, 2786, 2787, 2790, 2799, 2810, 2815, 2817, 2819, 2876, 2876, 2878, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2914, 2915, 2918, 2927, 2946, 2946, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3046, 3055, 3072, 3075, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3170, 3171, 3174, 3183, 3201, 3203, 3260, 3260, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3298, 3299, 3302, 3311, 3328, 3331, 3387, 3388, 3390, 3396, 3398, 3400, 3402, 3405, 3415, 3415, 3426, 3427, 3430, 3439, 3458, 3459, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3633, 3633, 3636, 3642, 3655, 3662, 3664, 3673, 3761, 3761, 3764, 3769, 3771, 3772, 3784, 3789, 3792, 3801, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3903, 3953, 3972, 3974, 3975, 3981, 3991, 3993, 4028, 4038, 4038, 4139, 4158, 4160, 4169, 4182, 4185, 4190, 4192, 4194, 4196, 4199, 4205, 4209, 4212, 4226, 4237, 4239, 4253, 4957, 4959, 5906, 5908, 5938, 5940, 5970, 5971, 6002, 6003, 6068, 6099, 6109, 6109, 6112, 6121, 6155, 6158, 6160, 6169, 6277, 6278, 6313, 6313, 6432, 6443, 6448, 6459, 6470, 6479, 6608, 6617, 6679, 6683, 6741, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6832, 6845, 6912, 6916, 6964, 6980, 6992, 7001, 7019, 7027, 7040, 7042, 7073, 7085, 7088, 7097, 7142, 7155, 7204, 7223, 7232, 7241, 7248, 7257, 7376, 7378, 7380, 7400, 7405, 7405, 7410, 7412, 7415, 7417, 7616, 7673, 7675, 7679, 8203, 8207, 8234, 8238, 8288, 8292, 8294, 8303, 8400, 8412, 8417, 8417, 8421, 8432, 11503, 11505, 11647, 11647, 11744, 11775, 12330, 12335, 12441, 12442, 42528, 42537, 42607, 42607, 42612, 42621, 42654, 42655, 42736, 42737, 43010, 43010, 43014, 43014, 43019, 43019, 43043, 43047, 43136, 43137, 43188, 43205, 43216, 43225, 43232, 43249, 43264, 43273, 43302, 43309, 43335, 43347, 43392, 43395, 43443, 43456, 43472, 43481, 43493, 43493, 43504, 43513, 43561, 43574, 43587, 43587, 43596, 43597, 43600, 43609, 43643, 43645, 43696, 43696, 43698, 43700, 43703, 43704, 43710, 43711, 43713, 43713, 43755, 43759, 43765, 43766, 44003, 44010, 44012, 44013, 44016, 44025, 64286, 64286, 65024, 65039, 65056, 65071, 65279, 65279, 65296, 65305, 65529, 65531, 3, 0, 9, 10, 12, 13, 32, 32, 2, 0, 10, 10, 13, 13, 1133, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 1, 307, 1, 0, 0, 0, 3, 316, 1, 0, 0, 0, 5, 323, 1, 0, 0, 0, 7, 331, 1, 0, 0, 0, 9, 337, 1, 0, 0, 0, 11, 342, 1, 0, 0, 0, 13, 347, 1, 0, 0, 0, 15, 353, 1, 0, 0, 0, 17, 358, 1, 0, 0, 0, 19, 364, 1, 0, 0, 0, 21, 370, 1, 0, 0, 0, 23, 379, 1, 0, 0, 0, 25, 387, 1, 0, 0, 0, 27, 390, 1, 0, 0, 0, 29, 397, 1, 0, 0, 0, 31, 402, 1, 0, 0, 0, 33, 407, 1, 0, 0, 0, 35, 415, 1, 0, 0, 0, 37, 421, 1, 0, 0, 0, 39, 429, 1, 0, 0, 0, 41, 435, 1, 0, 0, 0, 43, 439, 1, 0, 0, 0, 45, 442, 1, 0, 0, 0, 47, 447, 1, 0, 0, 0, 49, 458, 1, 0, 0, 0, 51, 465, 1, 0, 0, 0, 53, 476, 1, 0, 0, 0, 55, 480, 1, 0, 0, 0, 57, 490, 1, 0, 0, 0, 59, 495, 1, 0, 0, 0, 61, 502, 1, 0, 0, 0, 63, 506, 1, 0, 0, 0, 65, 514, 1, 0, 0, 0, 67, 522, 1, 0, 0, 0, 69, 532, 1, 0, 0, 0, 71, 539, 1, 0, 0, 0, 73, 546, 1, 0, 0, 0, 75, 552, 1, 0, 0, 0, 77, 559, 1, 0, 0, 0, 79, 568, 1, 0, 0, 0, 81, 574, 1, 0, 0, 0, 83, 581, 1, 0, 0, 0, 85, 594, 1, 0, 0, 0, 87, 599, 1, 0, 0, 0, 89, 605, 1, 0, 0, 0, 91, 612, 1, 0, 0, 0, 93, 622, 1, 0, 0, 0, 95, 626, 1, 0, 0, 0, 97, 631, 1, 0, 0, 0, 99, 640, 1, 0, 0, 0, 101, 650, 1, 0, 0, 0, 103, 652, 1, 0, 0, 0, 105, 656, 1, 0, 0, 0, 107, 660, 1, 0, 0, 0, 109, 664, 1, 0, 0, 0, 111, 668, 1, 0, 0, 0, 113, 680, 1, 0, 0, 0, 115, 682, 1, 0, 0, 0, 117, 691, 1, 0, 0, 0, 119, 693, 1, 0, 0, 0, 121, 696, 1, 0, 0, 0, 123, 702, 1, 0, 0, 0, 125, 705, 1, 0, 0, 0, 127, 709, 1, 0, 0, 0, 129, 713, 1, 0, 0, 0, 131, 720, 1, 0, 0, 0, 133, 723, 1, 0, 0, 0, 135, 729, 1, 0, 0, 0, 137, 731, 1, 0, 0, 0, 139, 737, 1, 0, 0, 0, 141, 744, 1, 0, 0, 0, 143, 747, 1, 0, 0, 0, 145, 753, 1, 0, 0, 0, 147, 755, 1, 0, 0, 0, 149, 759, 1, 0, 0, 0, 151, 766, 1, 0, 0, 0, 153, 769, 1, 0, 0, 0, 155, 775, 1, 0, 0, 0, 157, 779, 1, 0, 0, 0, 159, 808, 1, 0, 0, 0, 161, 810, 1, 0, 0, 0, 163, 813, 1, 0, 0, 0, 165, 816, 1, 0, 0, 0, 167, 820, 1, 0, 0, 0, 169, 822, 1, 0, 0, 0, 171, 824, 1, 0, 0, 0, 173, 840, 1, 0, 0, 0, 175, 842, 1, 0, 0, 0, 177, 845, 1, 0, 0, 0, 179, 856, 1, 0, 0, 0, 181, 866, 1, 0, 0, 0, 183, 868, 1, 0, 0, 0, 185, 870, 1, 0, 0, 0, 187, 877, 1, 0, 0, 0, 189, 883, 1, 0, 0, 0, 191, 896, 1, 0, 0, 0, 193, 930, 1, 0, 0, 0, 195, 932, 1, 0, 0, 0, 197, 934, 1, 0, 0, 0, 199, 945, 1, 0, 0, 0, 201, 950, 1, 0, 0, 0, 203, 952, 1, 0, 0, 0, 205, 954, 1, 0, 0, 0, 207, 956, 1, 0, 0, 0, 209, 958, 1, 0, 0, 0, 211, 960, 1, 0, 0, 0, 213, 962, 1, 0, 0, 0, 215, 964, 1, 0, 0, 0, 217, 966, 1, 0, 0, 0, 219, 968, 1, 0, 0, 0, 221, 970, 1, 0, 0, 0, 223, 972, 1, 0, 0, 0, 225, 974, 1, 0, 0, 0, 227, 976, 1, 0, 0, 0, 229, 978, 1, 0, 0, 0, 231, 980, 1, 0, 0, 0, 233, 982, 1, 0, 0, 0, 235, 985, 1, 0, 0, 0, 237, 988, 1, 0, 0, 0, 239, 991, 1, 0, 0, 0, 241, 994, 1, 0, 0, 0, 243, 997, 1, 0, 0, 0, 245, 1000, 1, 0, 0, 0, 247, 1003, 1, 0, 0, 0, 249, 1006, 1, 0, 0, 0, 251, 1008, 1, 0, 0, 0, 253, 1010, 1, 0, 0, 0, 255, 1012, 1, 0, 0, 0, 257, 1014, 1, 0, 0, 0, 259, 1016, 1, 0, 0, 0, 261, 1018, 1, 0, 0, 0, 263, 1020, 1, 0, 0, 0, 265, 1022, 1, 0, 0, 0, 267, 1025, 1, 0, 0, 0, 269, 1028, 1, 0, 0, 0, 271, 1031, 1, 0, 0, 0, 273, 1034, 1, 0, 0, 0, 275, 1037, 1, 0, 0, 0, 277, 1040, 1, 0, 0, 0, 279, 1043, 1, 0, 0, 0, 281, 1046, 1, 0, 0, 0, 283, 1049, 1, 0, 0, 0, 285, 1052, 1, 0, 0, 0, 287, 1056, 1, 0, 0, 0, 289, 1060, 1, 0, 0, 0, 291, 1065, 1, 0, 0, 0, 293, 1073, 1, 0, 0, 0, 295, 1077, 1, 0, 0, 0, 297, 1079, 1, 0, 0, 0, 299, 1081, 1, 0, 0, 0, 301, 1086, 1, 0, 0, 0, 303, 1092, 1, 0, 0, 0, 305, 1106, 1, 0, 0, 0, 307, 308, 5, 97, 0, 0, 308, 309, 5, 98, 0, 0, 309, 310, 5, 115, 0, 0, 310, 311, 5, 116, 0, 0, 311, 312, 5, 114, 0, 0, 312, 313, 5, 97, 0, 0, 313, 314, 5, 99, 0, 0, 314, 315, 5, 116, 0, 0, 315, 2, 1, 0, 0, 0, 316, 317, 5, 97, 0, 0, 317, 318, 5, 115, 0, 0, 318, 319, 5, 115, 0, 0, 319, 320, 5, 101, 0, 0, 320, 321, 5, 114, 0, 0, 321, 322, 5, 116, 0, 0, 322, 4, 1, 0, 0, 0, 323, 324, 5, 98, 0, 0, 324, 325, 5, 111, 0, 0, 325, 326, 5, 111, 0, 0, 326, 327, 5, 108, 0, 0, 327, 328, 5, 101, 0, 0, 328, 329, 5, 97, 0, 0, 329, 330, 5, 110, 0, 0, 330, 6, 1, 0, 0, 0, 331, 332, 5, 98, 0, 0, 332, 333, 5, 114, 0, 0, 333, 334, 5, 101, 0, 0, 334, 335, 5, 97, 0, 0, 335, 336, 5, 107, 0, 0, 336, 8, 1, 0, 0, 0, 337, 338, 5, 98, 0, 0, 338, 339, 5, 121, 0, 0, 339, 340, 5, 116, 0, 0, 340, 341, 5, 101, 0, 0, 341, 10, 1, 0, 0, 0, 342, 343, 5, 99, 0, 0, 343, 344, 5, 97, 0, 0, 344, 345, 5, 115, 0, 0, 345, 346, 5, 101, 0, 0, 346, 12, 1, 0, 0, 0, 347, 348, 5, 99, 0, 0, 348, 349, 5, 97, 0, 0, 349, 350, 5, 116, 0, 0, 350, 351, 5, 99, 0, 0, 351, 352, 5, 104, 0, 0, 352, 14, 1, 0, 0, 0, 353, 354, 5, 99, 0, 0, 354, 355, 5, 104, 0, 0, 355, 356, 5, 97, 0, 0, 356, 357, 5, 114, 0, 0, 357, 16, 1, 0, 0, 0, 358, 359, 5, 99, 0, 0, 359, 360, 5, 108, 0, 0, 360, 361, 5, 97, 0, 0, 361, 362, 5, 115, 0, 0, 362, 363, 5, 115, 0, 0, 363, 18, 1, 0, 0, 0, 364, 365, 5, 99, 0, 0, 365, 366, 5, 111, 0, 0, 366, 367, 5, 110, 0, 0, 367, 368, 5, 115, 0, 0, 368, 369, 5, 116, 0, 0, 369, 20, 1, 0, 0, 0, 370, 371, 5, 99, 0, 0, 371, 372, 5, 111, 0, 0, 372, 373, 5, 110, 0, 0, 373, 374, 5, 116, 0, 0, 374, 375, 5, 105, 0, 0, 375, 376, 5, 110, 0, 0, 376, 377, 5, 117, 0, 0, 377, 378, 5, 101, 0, 0, 378, 22, 1, 0, 0, 0, 379, 380, 5, 100, 0, 0, 380, 381, 5, 101, 0, 0, 381, 382, 5, 102, 0, 0, 382, 383, 5, 97, 0, 0, 383, 384, 5, 117, 0, 0, 384, 385, 5, 108, 0, 0, 385, 386, 5, 116, 0, 0, 386, 24, 1, 0, 0, 0, 387, 388, 5, 100, 0, 0, 388, 389, 5, 111, 0, 0, 389, 26, 1, 0, 0, 0, 390, 391, 5, 100, 0, 0, 391, 392, 5, 111, 0, 0, 392, 393, 5, 117, 0, 0, 393, 394, 5, 98, 0, 0, 394, 395, 5, 108, 0, 0, 395, 396, 5, 101, 0, 0, 396, 28, 1, 0, 0, 0, 397, 398, 5, 101, 0, 0, 398, 399, 5, 108, 0, 0, 399, 400, 5, 115, 0, 0, 400, 401, 5, 101, 0, 0, 401, 30, 1, 0, 0, 0, 402, 403, 5, 101, 0, 0, 403, 404, 5, 110, 0, 0, 404, 405, 5, 117, 0, 0, 405, 406, 5, 109, 0, 0, 406, 32, 1, 0, 0, 0, 407, 408, 5, 101, 0, 0, 408, 409, 5, 120, 0, 0, 409, 410, 5, 116, 0, 0, 410, 411, 5, 101, 0, 0, 411, 412, 5, 110, 0, 0, 412, 413, 5, 100, 0, 0, 413, 414, 5, 115, 0, 0, 414, 34, 1, 0, 0, 0, 415, 416, 5, 102, 0, 0, 416, 417, 5, 105, 0, 0, 417, 418, 5, 110, 0, 0, 418, 419, 5, 97, 0, 0, 419, 420, 5, 108, 0, 0, 420, 36, 1, 0, 0, 0, 421, 422, 5, 102, 0, 0, 422, 423, 5, 105, 0, 0, 423, 424, 5, 110, 0, 0, 424, 425, 5, 97, 0, 0, 425, 426, 5, 108, 0, 0, 426, 427, 5, 108, 0, 0, 427, 428, 5, 121, 0, 0, 428, 38, 1, 0, 0, 0, 429, 430, 5, 102, 0, 0, 430, 431, 5, 108, 0, 0, 431, 432, 5, 111, 0, 0, 432, 433, 5, 97, 0, 0, 433, 434, 5, 116, 0, 0, 434, 40, 1, 0, 0, 0, 435, 436, 5, 102, 0, 0, 436, 437, 5, 111, 0, 0, 437, 438, 5, 114, 0, 0, 438, 42, 1, 0, 0, 0, 439, 440, 5, 105, 0, 0, 440, 441, 5, 102, 0, 0, 441, 44, 1, 0, 0, 0, 442, 443, 5, 103, 0, 0, 443, 444, 5, 111, 0, 0, 444, 445, 5, 116, 0, 0, 445, 446, 5, 111, 0, 0, 446, 46, 1, 0, 0, 0, 447, 448, 5, 105, 0, 0, 448, 449, 5, 109, 0, 0, 449, 450, 5, 112, 0, 0, 450, 451, 5, 108, 0, 0, 451, 452, 5, 101, 0, 0, 452, 453, 5, 109, 0, 0, 453, 454, 5, 101, 0, 0, 454, 455, 5, 110, 0, 0, 455, 456, 5, 116, 0, 0, 456, 457, 5, 115, 0, 0, 457, 48, 1, 0, 0, 0, 458, 459, 5, 105, 0, 0, 459, 460, 5, 109, 0, 0, 460, 461, 5, 112, 0, 0, 461, 462, 5, 111, 0, 0, 462, 463, 5, 114, 0, 0, 463, 464, 5, 116, 0, 0, 464, 50, 1, 0, 0, 0, 465, 466, 5, 105, 0, 0, 466, 467, 5, 110, 0, 0, 467, 468, 5, 115, 0, 0, 468, 469, 5, 116, 0, 0, 469, 470, 5, 97, 0, 0, 470, 471, 5, 110, 0, 0, 471, 472, 5, 99, 0, 0, 472, 473, 5, 101, 0, 0, 473, 474, 5, 111, 0, 0, 474, 475, 5, 102, 0, 0, 475, 52, 1, 0, 0, 0, 476, 477, 5, 105, 0, 0, 477, 478, 5, 110, 0, 0, 478, 479, 5, 116, 0, 0, 479, 54, 1, 0, 0, 0, 480, 481, 5, 105, 0, 0, 481, 482, 5, 110, 0, 0, 482, 483, 5, 116, 0, 0, 483, 484, 5, 101, 0, 0, 484, 485, 5, 114, 0, 0, 485, 486, 5, 102, 0, 0, 486, 487, 5, 97, 0, 0, 487, 488, 5, 99, 0, 0, 488, 489, 5, 101, 0, 0, 489, 56, 1, 0, 0, 0, 490, 491, 5, 108, 0, 0, 491, 492, 5, 111, 0, 0, 492, 493, 5, 110, 0, 0, 493, 494, 5, 103, 0, 0, 494, 58, 1, 0, 0, 0, 495, 496, 5, 110, 0, 0, 496, 497, 5, 97, 0, 0, 497, 498, 5, 116, 0, 0, 498, 499, 5, 105, 0, 0, 499, 500, 5, 118, 0, 0, 500, 501, 5, 101, 0, 0, 501, 60, 1, 0, 0, 0, 502, 503, 5, 110, 0, 0, 503, 504, 5, 101, 0, 0, 504, 505, 5, 119, 0, 0, 505, 62, 1, 0, 0, 0, 506, 507, 5, 112, 0, 0, 507, 508, 5, 97, 0, 0, 508, 509, 5, 99, 0, 0, 509, 510, 5, 107, 0, 0, 510, 511, 5, 97, 0, 0, 511, 512, 5, 103, 0, 0, 512, 513, 5, 101, 0, 0, 513, 64, 1, 0, 0, 0, 514, 515, 5, 112, 0, 0, 515, 516, 5, 114, 0, 0, 516, 517, 5, 105, 0, 0, 517, 518, 5, 118, 0, 0, 518, 519, 5, 97, 0, 0, 519, 520, 5, 116, 0, 0, 520, 521, 5, 101, 0, 0, 521, 66, 1, 0, 0, 0, 522, 523, 5, 112, 0, 0, 523, 524, 5, 114, 0, 0, 524, 525, 5, 111, 0, 0, 525, 526, 5, 116, 0, 0, 526, 527, 5, 101, 0, 0, 527, 528, 5, 99, 0, 0, 528, 529, 5, 116, 0, 0, 529, 530, 5, 101, 0, 0, 530, 531, 5, 100, 0, 0, 531, 68, 1, 0, 0, 0, 532, 533, 5, 112, 0, 0, 533, 534, 5, 117, 0, 0, 534, 535, 5, 98, 0, 0, 535, 536, 5, 108, 0, 0, 536, 537, 5, 105, 0, 0, 537, 538, 5, 99, 0, 0, 538, 70, 1, 0, 0, 0, 539, 540, 5, 114, 0, 0, 540, 541, 5, 101, 0, 0, 541, 542, 5, 116, 0, 0, 542, 543, 5, 117, 0, 0, 543, 544, 5, 114, 0, 0, 544, 545, 5, 110, 0, 0, 545, 72, 1, 0, 0, 0, 546, 547, 5, 115, 0, 0, 547, 548, 5, 104, 0, 0, 548, 549, 5, 111, 0, 0, 549, 550, 5, 114, 0, 0, 550, 551, 5, 116, 0, 0, 551, 74, 1, 0, 0, 0, 552, 553, 5, 115, 0, 0, 553, 554, 5, 116, 0, 0, 554, 555, 5, 97, 0, 0, 555, 556, 5, 116, 0, 0, 556, 557, 5, 105, 0, 0, 557, 558, 5, 99, 0, 0, 558, 76, 1, 0, 0, 0, 559, 560, 5, 115, 0, 0, 560, 561, 5, 116, 0, 0, 561, 562, 5, 114, 0, 0, 562, 563, 5, 105, 0, 0, 563, 564, 5, 99, 0, 0, 564, 565, 5, 116, 0, 0, 565, 566, 5, 102, 0, 0, 566, 567, 5, 112, 0, 0, 567, 78, 1, 0, 0, 0, 568, 569, 5, 115, 0, 0, 569, 570, 5, 117, 0, 0, 570, 571, 5, 112, 0, 0, 571, 572, 5, 101, 0, 0, 572, 573, 5, 114, 0, 0, 573, 80, 1, 0, 0, 0, 574, 575, 5, 115, 0, 0, 575, 576, 5, 119, 0, 0, 576, 577, 5, 105, 0, 0, 577, 578, 5, 116, 0, 0, 578, 579, 5, 99, 0, 0, 579, 580, 5, 104, 0, 0, 580, 82, 1, 0, 0, 0, 581, 582, 5, 115, 0, 0, 582, 583, 5, 121, 0, 0, 583, 584, 5, 110, 0, 0, 584, 585, 5, 99, 0, 0, 585, 586, 5, 104, 0, 0, 586, 587, 5, 114, 0, 0, 587, 588, 5, 111, 0, 0, 588, 589, 5, 110, 0, 0, 589, 590, 5, 105, 0, 0, 590, 591, 5, 122, 0, 0, 591, 592, 5, 101, 0, 0, 592, 593, 5, 100, 0, 0, 593, 84, 1, 0, 0, 0, 594, 595, 5, 116, 0, 0, 595, 596, 5, 104, 0, 0, 596, 597, 5, 105, 0, 0, 597, 598, 5, 115, 0, 0, 598, 86, 1, 0, 0, 0, 599, 600, 5, 116, 0, 0, 600, 601, 5, 104, 0, 0, 601, 602, 5, 114, 0, 0, 602, 603, 5, 111, 0, 0, 603, 604, 5, 119, 0, 0, 604, 88, 1, 0, 0, 0, 605, 606, 5, 116, 0, 0, 606, 607, 5, 104, 0, 0, 607, 608, 5, 114, 0, 0, 608, 609, 5, 111, 0, 0, 609, 610, 5, 119, 0, 0, 610, 611, 5, 115, 0, 0, 611, 90, 1, 0, 0, 0, 612, 613, 5, 116, 0, 0, 613, 614, 5, 114, 0, 0, 614, 615, 5, 97, 0, 0, 615, 616, 5, 110, 0, 0, 616, 617, 5, 115, 0, 0, 617, 618, 5, 105, 0, 0, 618, 619, 5, 101, 0, 0, 619, 620, 5, 110, 0, 0, 620, 621, 5, 116, 0, 0, 621, 92, 1, 0, 0, 0, 622, 623, 5, 116, 0, 0, 623, 624, 5, 114, 0, 0, 624, 625, 5, 121, 0, 0, 625, 94, 1, 0, 0, 0, 626, 627, 5, 118, 0, 0, 627, 628, 5, 111, 0, 0, 628, 629, 5, 105, 0, 0, 629, 630, 5, 100, 0, 0, 630, 96, 1, 0, 0, 0, 631, 632, 5, 118, 0, 0, 632, 633, 5, 111, 0, 0, 633, 634, 5, 108, 0, 0, 634, 635, 5, 97, 0, 0, 635, 636, 5, 116, 0, 0, 636, 637, 5, 105, 0, 0, 637, 638, 5, 108, 0, 0, 638, 639, 5, 101, 0, 0, 639, 98, 1, 0, 0, 0, 640, 641, 5, 119, 0, 0, 641, 642, 5, 104, 0, 0, 642, 643, 5, 105, 0, 0, 643, 644, 5, 108, 0, 0, 644, 645, 5, 101, 0, 0, 645, 100, 1, 0, 0, 0, 646, 651, 3, 103, 51, 0, 647, 651, 3, 105, 52, 0, 648, 651, 3, 107, 53, 0, 649, 651, 3, 109, 54, 0, 650, 646, 1, 0, 0, 0, 650, 647, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650, 649, 1, 0, 0, 0, 651, 102, 1, 0, 0, 0, 652, 654, 3, 113, 56, 0, 653, 655, 3, 111, 55, 0, 654, 653, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 104, 1, 0, 0, 0, 656, 658, 3, 127, 63, 0, 657, 659, 3, 111, 55, 0, 658, 657, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 106, 1, 0, 0, 0, 660, 662, 3, 137, 68, 0, 661, 663, 3, 111, 55, 0, 662, 661, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 108, 1, 0, 0, 0, 664, 666, 3, 147, 73, 0, 665, 667, 3, 111, 55, 0, 666, 665, 1, 0, 0, 0, 666, 667, 1, 0, 0, 0, 667, 110, 1, 0, 0, 0, 668, 669, 7, 0, 0, 0, 669, 112, 1, 0, 0, 0, 670, 681, 5, 48, 0, 0, 671, 678, 3, 119, 59, 0, 672, 674, 3, 115, 57, 0, 673, 672, 1, 0, 0, 0, 673, 674, 1, 0, 0, 0, 674, 679, 1, 0, 0, 0, 675, 676, 3, 125, 62, 0, 676, 677, 3, 115, 57, 0, 677, 679, 1, 0, 0, 0, 678, 673, 1, 0, 0, 0, 678, 675, 1, 0, 0, 0, 679, 681, 1, 0, 0, 0, 680, 670, 1, 0, 0, 0, 680, 671, 1, 0, 0, 0, 681, 114, 1, 0, 0, 0, 682, 687, 3, 117, 58, 0, 683, 685, 3, 121, 60, 0, 684, 683, 1, 0, 0, 0, 684, 685, 1, 0, 0, 0, 685, 686, 1, 0, 0, 0, 686, 688, 3, 117, 58, 0, 687, 684, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 116, 1, 0, 0, 0, 689, 692, 5, 48, 0, 0, 690, 692, 3, 119, 59, 0, 691, 689, 1, 0, 0, 0, 691, 690, 1, 0, 0, 0, 692, 118, 1, 0, 0, 0, 693, 694, 7, 1, 0, 0, 694, 120, 1, 0, 0, 0, 695, 697, 3, 123, 61, 0, 696, 695, 1, 0, 0, 0, 697, 698, 1, 0, 0, 0, 698, 696, 1, 0, 0, 0, 698, 699, 1, 0, 0, 0, 699, 122, 1, 0, 0, 0, 700, 703, 3, 117, 58, 0, 701, 703, 5, 95, 0, 0, 702, 700, 1, 0, 0, 0, 702, 701, 1, 0, 0, 0, 703, 124, 1, 0, 0, 0, 704, 706, 5, 95, 0, 0, 705, 704, 1, 0, 0, 0, 706, 707, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 707, 708, 1, 0, 0, 0, 708, 126, 1, 0, 0, 0, 709, 710, 5, 48, 0, 0, 710, 711, 7, 2, 0, 0, 711, 712, 3, 129, 64, 0, 712, 128, 1, 0, 0, 0, 713, 718, 3, 131, 65, 0, 714, 716, 3, 133, 66, 0, 715, 714, 1, 0, 0, 0, 715, 716, 1, 0, 0, 0, 716, 717, 1, 0, 0, 0, 717, 719, 3, 131, 65, 0, 718, 715, 1, 0, 0, 0, 718, 719, 1, 0, 0, 0, 719, 130, 1, 0, 0, 0, 720, 721, 7, 3, 0, 0, 721, 132, 1, 0, 0, 0, 722, 724, 3, 135, 67, 0, 723, 722, 1, 0, 0, 0, 724, 725, 1, 0, 0, 0, 725, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 134, 1, 0, 0, 0, 727, 730, 3, 131, 65, 0, 728, 730, 5, 95, 0, 0, 729, 727, 1, 0, 0, 0, 729, 728, 1, 0, 0, 0, 730, 136, 1, 0, 0, 0, 731, 733, 5, 48, 0, 0, 732, 734, 3, 125, 62, 0, 733, 732, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 735, 1, 0, 0, 0, 735, 736, 3, 139, 69, 0, 736, 138, 1, 0, 0, 0, 737, 742, 3, 141, 70, 0, 738, 740, 3, 143, 71, 0, 739, 738, 1, 0, 0, 0, 739, 740, 1, 0, 0, 0, 740, 741, 1, 0, 0, 0, 741, 743, 3, 141, 70, 0, 742, 739, 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 140, 1, 0, 0, 0, 744, 745, 7, 4, 0, 0, 745, 142, 1, 0, 0, 0, 746, 748, 3, 145, 72, 0, 747, 746, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 747, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 144, 1, 0, 0, 0, 751, 754, 3, 141, 70, 0, 752, 754, 5, 95, 0, 0, 753, 751, 1, 0, 0, 0, 753, 752, 1, 0, 0, 0, 754, 146, 1, 0, 0, 0, 755, 756, 5, 48, 0, 0, 756, 757, 7, 5, 0, 0, 757, 758, 3, 149, 74, 0, 758, 148, 1, 0, 0, 0, 759, 764, 3, 151, 75, 0, 760, 762, 3, 153, 76, 0, 761, 760, 1, 0, 0, 0, 761, 762, 1, 0, 0, 0, 762, 763, 1, 0, 0, 0, 763, 765, 3, 151, 75, 0, 764, 761, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 150, 1, 0, 0, 0, 766, 767, 7, 6, 0, 0, 767, 152, 1, 0, 0, 0, 768, 770, 3, 155, 77, 0, 769, 768, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 771, 772, 1, 0, 0, 0, 772, 154, 1, 0, 0, 0, 773, 776, 3, 151, 75, 0, 774, 776, 5, 95, 0, 0, 775, 773, 1, 0, 0, 0, 775, 774, 1, 0, 0, 0, 776, 156, 1, 0, 0, 0, 777, 780, 3, 159, 79, 0, 778, 780, 3, 171, 85, 0, 779, 777, 1, 0, 0, 0, 779, 778, 1, 0, 0, 0, 780, 158, 1, 0, 0, 0, 781, 782, 3, 115, 57, 0, 782, 784, 5, 46, 0, 0, 783, 785, 3, 115, 57, 0, 784, 783, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 787, 1, 0, 0, 0, 786, 788, 3, 161, 80, 0, 787, 786, 1, 0, 0, 0, 787, 788, 1, 0, 0, 0, 788, 790, 1, 0, 0, 0, 789, 791, 3, 169, 84, 0, 790, 789, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 809, 1, 0, 0, 0, 792, 793, 5, 46, 0, 0, 793, 795, 3, 115, 57, 0, 794, 796, 3, 161, 80, 0, 795, 794, 1, 0, 0, 0, 795, 796, 1, 0, 0, 0, 796, 798, 1, 0, 0, 0, 797, 799, 3, 169, 84, 0, 798, 797, 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 809, 1, 0, 0, 0, 800, 801, 3, 115, 57, 0, 801, 803, 3, 161, 80, 0, 802, 804, 3, 169, 84, 0, 803, 802, 1, 0, 0, 0, 803, 804, 1, 0, 0, 0, 804, 809, 1, 0, 0, 0, 805, 806, 3, 115, 57, 0, 806, 807, 3, 169, 84, 0, 807, 809, 1, 0, 0, 0, 808, 781, 1, 0, 0, 0, 808, 792, 1, 0, 0, 0, 808, 800, 1, 0, 0, 0, 808, 805, 1, 0, 0, 0, 809, 160, 1, 0, 0, 0, 810, 811, 3, 163, 81, 0, 811, 812, 3, 165, 82, 0, 812, 162, 1, 0, 0, 0, 813, 814, 7, 7, 0, 0, 814, 164, 1, 0, 0, 0, 815, 817, 3, 167, 83, 0, 816, 815, 1, 0, 0, 0, 816, 817, 1, 0, 0, 0, 817, 818, 1, 0, 0, 0, 818, 819, 3, 115, 57, 0, 819, 166, 1, 0, 0, 0, 820, 821, 7, 8, 0, 0, 821, 168, 1, 0, 0, 0, 822, 823, 7, 9, 0, 0, 823, 170, 1, 0, 0, 0, 824, 825, 3, 173, 86, 0, 825, 827, 3, 175, 87, 0, 826, 828, 3, 169, 84, 0, 827, 826, 1, 0, 0, 0, 827, 828, 1, 0, 0, 0, 828, 172, 1, 0, 0, 0, 829, 831, 3, 127, 63, 0, 830, 832, 5, 46, 0, 0, 831, 830, 1, 0, 0, 0, 831, 832, 1, 0, 0, 0, 832, 841, 1, 0, 0, 0, 833, 834, 5, 48, 0, 0, 834, 836, 7, 2, 0, 0, 835, 837, 3, 129, 64, 0, 836, 835, 1, 0, 0, 0, 836, 837, 1, 0, 0, 0, 837, 838, 1, 0, 0, 0, 838, 839, 5, 46, 0, 0, 839, 841, 3, 129, 64, 0, 840, 829, 1, 0, 0, 0, 840, 833, 1, 0, 0, 0, 841, 174, 1, 0, 0, 0, 842, 843, 3, 177, 88, 0, 843, 844, 3, 165, 82, 0, 844, 176, 1, 0, 0, 0, 845, 846, 7, 10, 0, 0, 846, 178, 1, 0, 0, 0, 847, 848, 5, 116, 0, 0, 848, 849, 5, 114, 0, 0, 849, 850, 5, 117, 0, 0, 850, 857, 5, 101, 0, 0, 851, 852, 5, 102, 0, 0, 852, 853, 5, 97, 0, 0, 853, 854, 5, 108, 0, 0, 854, 855, 5, 115, 0, 0, 855, 857, 5, 101, 0, 0, 856, 847, 1, 0, 0, 0, 856, 851, 1, 0, 0, 0, 857, 180, 1, 0, 0, 0, 858, 859, 5, 39, 0, 0, 859, 860, 3, 183, 91, 0, 860, 861, 5, 39, 0, 0, 861, 867, 1, 0, 0, 0, 862, 863, 5, 39, 0, 0, 863, 864, 3, 191, 95, 0, 864, 865, 5, 39, 0, 0, 865, 867, 1, 0, 0, 0, 866, 858, 1, 0, 0, 0, 866, 862, 1, 0, 0, 0, 867, 182, 1, 0, 0, 0, 868, 869, 8, 11, 0, 0, 869, 184, 1, 0, 0, 0, 870, 872, 5, 34, 0, 0, 871, 873, 3, 187, 93, 0, 872, 871, 1, 0, 0, 0, 872, 873, 1, 0, 0, 0, 873, 874, 1, 0, 0, 0, 874, 875, 5, 34, 0, 0, 875, 186, 1, 0, 0, 0, 876, 878, 3, 189, 94, 0, 877, 876, 1, 0, 0, 0, 878, 879, 1, 0, 0, 0, 879, 877, 1, 0, 0, 0, 879, 880, 1, 0, 0, 0, 880, 188, 1, 0, 0, 0, 881, 884, 8, 12, 0, 0, 882, 884, 3, 191, 95, 0, 883, 881, 1, 0, 0, 0, 883, 882, 1, 0, 0, 0, 884, 190, 1, 0, 0, 0, 885, 891, 5, 92, 0, 0, 886, 887, 5, 117, 0, 0, 887, 888, 5, 48, 0, 0, 888, 889, 5, 48, 0, 0, 889, 890, 5, 53, 0, 0, 890, 892, 5, 99, 0, 0, 891, 886, 1, 0, 0, 0, 891, 892, 1, 0, 0, 0, 892, 893, 1, 0, 0, 0, 893, 897, 7, 13, 0, 0, 894, 897, 3, 193, 96, 0, 895, 897, 3, 197, 98, 0, 896, 885, 1, 0, 0, 0, 896, 894, 1, 0, 0, 0, 896, 895, 1, 0, 0, 0, 897, 192, 1, 0, 0, 0, 898, 904, 5, 92, 0, 0, 899, 900, 5, 117, 0, 0, 900, 901, 5, 48, 0, 0, 901, 902, 5, 48, 0, 0, 902, 903, 5, 53, 0, 0, 903, 905, 5, 99, 0, 0, 904, 899, 1, 0, 0, 0, 904, 905, 1, 0, 0, 0, 905, 906, 1, 0, 0, 0, 906, 931, 3, 141, 70, 0, 907, 913, 5, 92, 0, 0, 908, 909, 5, 117, 0, 0, 909, 910, 5, 48, 0, 0, 910, 911, 5, 48, 0, 0, 911, 912, 5, 53, 0, 0, 912, 914, 5, 99, 0, 0, 913, 908, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 915, 1, 0, 0, 0, 915, 916, 3, 141, 70, 0, 916, 917, 3, 141, 70, 0, 917, 931, 1, 0, 0, 0, 918, 924, 5, 92, 0, 0, 919, 920, 5, 117, 0, 0, 920, 921, 5, 48, 0, 0, 921, 922, 5, 48, 0, 0, 922, 923, 5, 53, 0, 0, 923, 925, 5, 99, 0, 0, 924, 919, 1, 0, 0, 0, 924, 925, 1, 0, 0, 0, 925, 926, 1, 0, 0, 0, 926, 927, 3, 195, 97, 0, 927, 928, 3, 141, 70, 0, 928, 929, 3, 141, 70, 0, 929, 931, 1, 0, 0, 0, 930, 898, 1, 0, 0, 0, 930, 907, 1, 0, 0, 0, 930, 918, 1, 0, 0, 0, 931, 194, 1, 0, 0, 0, 932, 933, 7, 14, 0, 0, 933, 196, 1, 0, 0, 0, 934, 936, 5, 92, 0, 0, 935, 937, 5, 117, 0, 0, 936, 935, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 936, 1, 0, 0, 0, 938, 939, 1, 0, 0, 0, 939, 940, 1, 0, 0, 0, 940, 941, 3, 131, 65, 0, 941, 942, 3, 131, 65, 0, 942, 943, 3, 131, 65, 0, 943, 944, 3, 131, 65, 0, 944, 198, 1, 0, 0, 0, 945, 946, 5, 110, 0, 0, 946, 947, 5, 117, 0, 0, 947, 948, 5, 108, 0, 0, 948, 949, 5, 108, 0, 0, 949, 200, 1, 0, 0, 0, 950, 951, 5, 40, 0, 0, 951, 202, 1, 0, 0, 0, 952, 953, 5, 41, 0, 0, 953, 204, 1, 0, 0, 0, 954, 955, 5, 123, 0, 0, 955, 206, 1, 0, 0, 0, 956, 957, 5, 125, 0, 0, 957, 208, 1, 0, 0, 0, 958, 959, 5, 91, 0, 0, 959, 210, 1, 0, 0, 0, 960, 961, 5, 93, 0, 0, 961, 212, 1, 0, 0, 0, 962, 963, 5, 59, 0, 0, 963, 214, 1, 0, 0, 0, 964, 965, 5, 44, 0, 0, 965, 216, 1, 0, 0, 0, 966, 967, 5, 46, 0, 0, 967, 218, 1, 0, 0, 0, 968, 969, 5, 61, 0, 0, 969, 220, 1, 0, 0, 0, 970, 971, 5, 62, 0, 0, 971, 222, 1, 0, 0, 0, 972, 973, 5, 60, 0, 0, 973, 224, 1, 0, 0, 0, 974, 975, 5, 33, 0, 0, 975, 226, 1, 0, 0, 0, 976, 977, 5, 126, 0, 0, 977, 228, 1, 0, 0, 0, 978, 979, 5, 63, 0, 0, 979, 230, 1, 0, 0, 0, 980, 981, 5, 58, 0, 0, 981, 232, 1, 0, 0, 0, 982, 983, 5, 61, 0, 0, 983, 984, 5, 61, 0, 0, 984, 234, 1, 0, 0, 0, 985, 986, 5, 60, 0, 0, 986, 987, 5, 61, 0, 0, 987, 236, 1, 0, 0, 0, 988, 989, 5, 62, 0, 0, 989, 990, 5, 61, 0, 0, 990, 238, 1, 0, 0, 0, 991, 992, 5, 33, 0, 0, 992, 993, 5, 61, 0, 0, 993, 240, 1, 0, 0, 0, 994, 995, 5, 38, 0, 0, 995, 996, 5, 38, 0, 0, 996, 242, 1, 0, 0, 0, 997, 998, 5, 124, 0, 0, 998, 999, 5, 124, 0, 0, 999, 244, 1, 0, 0, 0, 1000, 1001, 5, 43, 0, 0, 1001, 1002, 5, 43, 0, 0, 1002, 246, 1, 0, 0, 0, 1003, 1004, 5, 45, 0, 0, 1004, 1005, 5, 45, 0, 0, 1005, 248, 1, 0, 0, 0, 1006, 1007, 5, 43, 0, 0, 1007, 250, 1, 0, 0, 0, 1008, 1009, 5, 45, 0, 0, 1009, 252, 1, 0, 0, 0, 1010, 1011, 5, 42, 0, 0, 1011, 254, 1, 0, 0, 0, 1012, 1013, 5, 47, 0, 0, 1013, 256, 1, 0, 0, 0, 1014, 1015, 5, 38, 0, 0, 1015, 258, 1, 0, 0, 0, 1016, 1017, 5, 124, 0, 0, 1017, 260, 1, 0, 0, 0, 1018, 1019, 5, 94, 0, 0, 1019, 262, 1, 0, 0, 0, 1020, 1021, 5, 37, 0, 0, 1021, 264, 1, 0, 0, 0, 1022, 1023, 5, 45, 0, 0, 1023, 1024, 5, 62, 0, 0, 1024, 266, 1, 0, 0, 0, 1025, 1026, 5, 58, 0, 0, 1026, 1027, 5, 58, 0, 0, 1027, 268, 1, 0, 0, 0, 1028, 1029, 5, 43, 0, 0, 1029, 1030, 5, 61, 0, 0, 1030, 270, 1, 0, 0, 0, 1031, 1032, 5, 45, 0, 0, 1032, 1033, 5, 61, 0, 0, 1033, 272, 1, 0, 0, 0, 1034, 1035, 5, 42, 0, 0, 1035, 1036, 5, 61, 0, 0, 1036, 274, 1, 0, 0, 0, 1037, 1038, 5, 47, 0, 0, 1038, 1039, 5, 61, 0, 0, 1039, 276, 1, 0, 0, 0, 1040, 1041, 5, 38, 0, 0, 1041, 1042, 5, 61, 0, 0, 1042, 278, 1, 0, 0, 0, 1043, 1044, 5, 124, 0, 0, 1044, 1045, 5, 61, 0, 0, 1045, 280, 1, 0, 0, 0, 1046, 1047, 5, 94, 0, 0, 1047, 1048, 5, 61, 0, 0, 1048, 282, 1, 0, 0, 0, 1049, 1050, 5, 37, 0, 0, 1050, 1051, 5, 61, 0, 0, 1051, 284, 1, 0, 0, 0, 1052, 1053, 5, 60, 0, 0, 1053, 1054, 5, 60, 0, 0, 1054, 1055, 5, 61, 0, 0, 1055, 286, 1, 0, 0, 0, 1056, 1057, 5, 62, 0, 0, 1057, 1058, 5, 62, 0, 0, 1058, 1059, 5, 61, 0, 0, 1059, 288, 1, 0, 0, 0, 1060, 1061, 5, 62, 0, 0, 1061, 1062, 5, 62, 0, 0, 1062, 1063, 5, 62, 0, 0, 1063, 1064, 5, 61, 0, 0, 1064, 290, 1, 0, 0, 0, 1065, 1069, 3, 293, 146, 0, 1066, 1068, 3, 295, 147, 0, 1067, 1066, 1, 0, 0, 0, 1068, 1071, 1, 0, 0, 0, 1069, 1067, 1, 0, 0, 0, 1069, 1070, 1, 0, 0, 0, 1070, 292, 1, 0, 0, 0, 1071, 1069, 1, 0, 0, 0, 1072, 1074, 7, 15, 0, 0, 1073, 1072, 1, 0, 0, 0, 1074, 294, 1, 0, 0, 0, 1075, 1078, 3, 293, 146, 0, 1076, 1078, 7, 16, 0, 0, 1077, 1075, 1, 0, 0, 0, 1077, 1076, 1, 0, 0, 0, 1078, 296, 1, 0, 0, 0, 1079, 1080, 5, 64, 0, 0, 1080, 298, 1, 0, 0, 0, 1081, 1082, 5, 46, 0, 0, 1082, 1083, 5, 46, 0, 0, 1083, 1084, 5, 46, 0, 0, 1084, 300, 1, 0, 0, 0, 1085, 1087, 7, 17, 0, 0, 1086, 1085, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1086, 1, 0, 0, 0, 1088, 1089, 1, 0, 0, 0, 1089, 1090, 1, 0, 0, 0, 1090, 1091, 6, 150, 0, 0, 1091, 302, 1, 0, 0, 0, 1092, 1093, 5, 47, 0, 0, 1093, 1094, 5, 42, 0, 0, 1094, 1098, 1, 0, 0, 0, 1095, 1097, 9, 0, 0, 0, 1096, 1095, 1, 0, 0, 0, 1097, 1100, 1, 0, 0, 0, 1098, 1099, 1, 0, 0, 0, 1098, 1096, 1, 0, 0, 0, 1099, 1101, 1, 0, 0, 0, 1100, 1098, 1, 0, 0, 0, 1101, 1102, 5, 42, 0, 0, 1102, 1103, 5, 47, 0, 0, 1103, 1104, 1, 0, 0, 0, 1104, 1105, 6, 151, 0, 0, 1105, 304, 1, 0, 0, 0, 1106, 1107, 5, 47, 0, 0, 1107, 1108, 5, 47, 0, 0, 1108, 1112, 1, 0, 0, 0, 1109, 1111, 8, 18, 0, 0, 1110, 1109, 1, 0, 0, 0, 1111, 1114, 1, 0, 0, 0, 1112, 1110, 1, 0, 0, 0, 1112, 1113, 1, 0, 0, 0, 1113, 1115, 1, 0, 0, 0, 1114, 1112, 1, 0, 0, 0, 1115, 1116, 6, 152, 0, 0, 1116, 306, 1, 0, 0, 0, 59, 0, 650, 654, 658, 662, 666, 673, 678, 680, 684, 687, 691, 698, 702, 707, 715, 718, 725, 729, 733, 739, 742, 749, 753, 761, 764, 771, 775, 779, 784, 787, 790, 795, 798, 803, 808, 816, 827, 831, 836, 840, 856, 866, 872, 879, 883, 891, 896, 904, 913, 924, 930, 938, 1069, 1073, 1077, 1088, 1098, 1112, 1, 6, 0, 0] \ No newline at end of file diff --git a/Assignment-2/Java-8/Java8Lexer.java b/Assignment-2/Java-8/Java8Lexer.java new file mode 100644 index 0000000..b911e53 --- /dev/null +++ b/Assignment-2/Java-8/Java8Lexer.java @@ -0,0 +1,992 @@ +// Generated from Java-8/Java8Lexer.g4 by ANTLR 4.13.2 +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", "CheckReturnValue", "this-escape"}) +public class Java8Lexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, + CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, + LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, + ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, + LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, + MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ARROW=89, COLONCOLON=90, + ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, + OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, + URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, + LINE_COMMENT=107; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "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", "IdentifierStart", "IdentifierPart", "AT", "ELLIPSIS", + "WS", "COMMENT", "LINE_COMMENT" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", + "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", + "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, + null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", + "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", + "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'->'", "'::'", "'+='", + "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", + "'>>>='", null, "'@'", "'...'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + 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" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + 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 "Java8Lexer.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; } + + public static final String _serializedATN = + "\u0004\u0000k\u045d\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+ + "\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+ + "\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+ + "\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+ + "\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+ + "\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002"+ + "\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002"+ + "\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002"+ + "\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002"+ + "\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002"+ + "\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007"+ + "!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+ + "&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+ + "+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u0007"+ + "0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u0007"+ + "5\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007"+ + ":\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007"+ + "?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007"+ + "D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007"+ + "I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007"+ + "N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007"+ + "S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007"+ + "X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007"+ + "]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007"+ + "b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007"+ + "g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007"+ + "l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007"+ + "q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007"+ + "v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007"+ + "{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002"+ + "\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002"+ + "\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002"+ + "\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002"+ + "\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002"+ + "\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002"+ + "\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002"+ + "\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002"+ + "\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002"+ + "\u0098\u0007\u0098\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001"+ + "\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+ + "\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001"+ + "\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001"+ + "\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ + "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"+ + "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b"+ + "\u0001\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001"+ + "\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\r\u0001"+ + "\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+ + "\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+ + "\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001"+ + "\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001"+ + "\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+ + "\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001"+ + "\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+ + "\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001"+ + "\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+ + "\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001"+ + "\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001"+ + "\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001!"+ + "\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001"+ + "#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001"+ + "$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001"+ + "&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001"+ + "\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + ")\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+ + ")\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001"+ + "+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ + ",\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "0\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00011\u0001"+ + "1\u00011\u00011\u00011\u00011\u00012\u00012\u00012\u00012\u00032\u028b"+ + "\b2\u00013\u00013\u00033\u028f\b3\u00014\u00014\u00034\u0293\b4\u0001"+ + "5\u00015\u00035\u0297\b5\u00016\u00016\u00036\u029b\b6\u00017\u00017\u0001"+ + "8\u00018\u00018\u00038\u02a2\b8\u00018\u00018\u00018\u00038\u02a7\b8\u0003"+ + "8\u02a9\b8\u00019\u00019\u00039\u02ad\b9\u00019\u00039\u02b0\b9\u0001"+ + ":\u0001:\u0003:\u02b4\b:\u0001;\u0001;\u0001<\u0004<\u02b9\b<\u000b<\f"+ + "<\u02ba\u0001=\u0001=\u0003=\u02bf\b=\u0001>\u0004>\u02c2\b>\u000b>\f"+ + ">\u02c3\u0001?\u0001?\u0001?\u0001?\u0001@\u0001@\u0003@\u02cc\b@\u0001"+ + "@\u0003@\u02cf\b@\u0001A\u0001A\u0001B\u0004B\u02d4\bB\u000bB\fB\u02d5"+ + "\u0001C\u0001C\u0003C\u02da\bC\u0001D\u0001D\u0003D\u02de\bD\u0001D\u0001"+ + "D\u0001E\u0001E\u0003E\u02e4\bE\u0001E\u0003E\u02e7\bE\u0001F\u0001F\u0001"+ + "G\u0004G\u02ec\bG\u000bG\fG\u02ed\u0001H\u0001H\u0003H\u02f2\bH\u0001"+ + "I\u0001I\u0001I\u0001I\u0001J\u0001J\u0003J\u02fa\bJ\u0001J\u0003J\u02fd"+ + "\bJ\u0001K\u0001K\u0001L\u0004L\u0302\bL\u000bL\fL\u0303\u0001M\u0001"+ + "M\u0003M\u0308\bM\u0001N\u0001N\u0003N\u030c\bN\u0001O\u0001O\u0001O\u0003"+ + "O\u0311\bO\u0001O\u0003O\u0314\bO\u0001O\u0003O\u0317\bO\u0001O\u0001"+ + "O\u0001O\u0003O\u031c\bO\u0001O\u0003O\u031f\bO\u0001O\u0001O\u0001O\u0003"+ + "O\u0324\bO\u0001O\u0001O\u0001O\u0003O\u0329\bO\u0001P\u0001P\u0001P\u0001"+ + "Q\u0001Q\u0001R\u0003R\u0331\bR\u0001R\u0001R\u0001S\u0001S\u0001T\u0001"+ + "T\u0001U\u0001U\u0001U\u0003U\u033c\bU\u0001V\u0001V\u0003V\u0340\bV\u0001"+ + "V\u0001V\u0001V\u0003V\u0345\bV\u0001V\u0001V\u0003V\u0349\bV\u0001W\u0001"+ + "W\u0001W\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0003Y\u0359\bY\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0003Z\u0363\bZ\u0001[\u0001[\u0001\\\u0001\\\u0003\\"+ + "\u0369\b\\\u0001\\\u0001\\\u0001]\u0004]\u036e\b]\u000b]\f]\u036f\u0001"+ + "^\u0001^\u0003^\u0374\b^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001_\u0003"+ + "_\u037c\b_\u0001_\u0001_\u0001_\u0003_\u0381\b_\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0003`\u0389\b`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0003`\u0392\b`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0003`\u039d\b`\u0001`\u0001`\u0001`\u0001`\u0003`\u03a3"+ + "\b`\u0001a\u0001a\u0001b\u0001b\u0004b\u03a9\bb\u000bb\fb\u03aa\u0001"+ + "b\u0001b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001"+ + "d\u0001d\u0001e\u0001e\u0001f\u0001f\u0001g\u0001g\u0001h\u0001h\u0001"+ + "i\u0001i\u0001j\u0001j\u0001k\u0001k\u0001l\u0001l\u0001m\u0001m\u0001"+ + "n\u0001n\u0001o\u0001o\u0001p\u0001p\u0001q\u0001q\u0001r\u0001r\u0001"+ + "s\u0001s\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001v\u0001v\u0001"+ + "v\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001y\u0001y\u0001y\u0001"+ + "z\u0001z\u0001z\u0001{\u0001{\u0001{\u0001|\u0001|\u0001}\u0001}\u0001"+ + "~\u0001~\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0081\u0001"+ + "\u0081\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0091\u0001\u0091\u0005\u0091\u042c\b\u0091\n\u0091\f\u0091\u042f\t\u0091"+ + "\u0001\u0092\u0003\u0092\u0432\b\u0092\u0001\u0093\u0001\u0093\u0003\u0093"+ + "\u0436\b\u0093\u0001\u0094\u0001\u0094\u0001\u0095\u0001\u0095\u0001\u0095"+ + "\u0001\u0095\u0001\u0096\u0004\u0096\u043f\b\u0096\u000b\u0096\f\u0096"+ + "\u0440\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0005\u0097\u0449\b\u0097\n\u0097\f\u0097\u044c\t\u0097\u0001\u0097"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098"+ + "\u0001\u0098\u0001\u0098\u0005\u0098\u0457\b\u0098\n\u0098\f\u0098\u045a"+ + "\t\u0098\u0001\u0098\u0001\u0098\u0001\u044a\u0000\u0099\u0001\u0001\u0003"+ + "\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011"+ + "\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010"+ + "!\u0011#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a"+ + "5\u001b7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/"+ + "_0a1c2e3g\u0000i\u0000k\u0000m\u0000o\u0000q\u0000s\u0000u\u0000w\u0000"+ + "y\u0000{\u0000}\u0000\u007f\u0000\u0081\u0000\u0083\u0000\u0085\u0000"+ + "\u0087\u0000\u0089\u0000\u008b\u0000\u008d\u0000\u008f\u0000\u0091\u0000"+ + "\u0093\u0000\u0095\u0000\u0097\u0000\u0099\u0000\u009b\u0000\u009d4\u009f"+ + "\u0000\u00a1\u0000\u00a3\u0000\u00a5\u0000\u00a7\u0000\u00a9\u0000\u00ab"+ + "\u0000\u00ad\u0000\u00af\u0000\u00b1\u0000\u00b35\u00b56\u00b7\u0000\u00b9"+ + "7\u00bb\u0000\u00bd\u0000\u00bf\u0000\u00c1\u0000\u00c3\u0000\u00c5\u0000"+ + "\u00c78\u00c99\u00cb:\u00cd;\u00cf<\u00d1=\u00d3>\u00d5?\u00d7@\u00d9"+ + "A\u00dbB\u00ddC\u00dfD\u00e1E\u00e3F\u00e5G\u00e7H\u00e9I\u00ebJ\u00ed"+ + "K\u00efL\u00f1M\u00f3N\u00f5O\u00f7P\u00f9Q\u00fbR\u00fdS\u00ffT\u0101"+ + "U\u0103V\u0105W\u0107X\u0109Y\u010bZ\u010d[\u010f\\\u0111]\u0113^\u0115"+ + "_\u0117`\u0119a\u011bb\u011dc\u011fd\u0121e\u0123f\u0125\u0000\u0127\u0000"+ + "\u0129g\u012bh\u012di\u012fj\u0131k\u0001\u0000\u0013\u0002\u0000LLll"+ + "\u0001\u000019\u0002\u0000XXxx\u0003\u000009AFaf\u0001\u000007\u0002\u0000"+ + "BBbb\u0001\u000001\u0002\u0000EEee\u0002\u0000++--\u0004\u0000DDFFddf"+ + "f\u0002\u0000PPpp\u0004\u0000\n\n\r\r\'\'\\\\\u0004\u0000\n\n\r\r\"\""+ + "\\\\\b\u0000\"\"\'\'\\\\bbffnnrrtt\u0001\u000003\u0192\u0000$$AZ__az\u00a2"+ + "\u00a5\u00aa\u00aa\u00b5\u00b5\u00ba\u00ba\u00c0\u00d6\u00d8\u00f6\u00f8"+ + "\u02c1\u02c6\u02d1\u02e0\u02e4\u02ec\u02ec\u02ee\u02ee\u0370\u0374\u0376"+ + "\u0377\u037a\u037d\u037f\u037f\u0386\u0386\u0388\u038a\u038c\u038c\u038e"+ + "\u03a1\u03a3\u03f5\u03f7\u0481\u048a\u052f\u0531\u0556\u0559\u0559\u0561"+ + "\u0587\u058f\u058f\u05d0\u05ea\u05f0\u05f2\u060b\u060b\u0620\u064a\u066e"+ + "\u066f\u0671\u06d3\u06d5\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa\u06fc\u06ff"+ + "\u06ff\u0710\u0710\u0712\u072f\u074d\u07a5\u07b1\u07b1\u07ca\u07ea\u07f4"+ + "\u07f5\u07fa\u07fa\u0800\u0815\u081a\u081a\u0824\u0824\u0828\u0828\u0840"+ + "\u0858\u0860\u086a\u08a0\u08b4\u08b6\u08bd\u0904\u0939\u093d\u093d\u0950"+ + "\u0950\u0958\u0961\u0971\u0980\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa"+ + "\u09b0\u09b2\u09b2\u09b6\u09b9\u09bd\u09bd\u09ce\u09ce\u09dc\u09dd\u09df"+ + "\u09e1\u09f0\u09f3\u09fb\u09fc\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a"+ + "\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72"+ + "\u0a74\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5"+ + "\u0ab9\u0abd\u0abd\u0ad0\u0ad0\u0ae0\u0ae1\u0af1\u0af1\u0af9\u0af9\u0b05"+ + "\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b35\u0b39\u0b3d"+ + "\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b71\u0b71\u0b83\u0b83\u0b85\u0b8a\u0b8e"+ + "\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8"+ + "\u0baa\u0bae\u0bb9\u0bd0\u0bd0\u0bf9\u0bf9\u0c05\u0c0c\u0c0e\u0c10\u0c12"+ + "\u0c28\u0c2a\u0c39\u0c3d\u0c3d\u0c58\u0c5a\u0c60\u0c61\u0c80\u0c80\u0c85"+ + "\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbd\u0cbd\u0cde"+ + "\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d3a\u0d3d"+ + "\u0d3d\u0d4e\u0d4e\u0d54\u0d56\u0d5f\u0d61\u0d7a\u0d7f\u0d85\u0d96\u0d9a"+ + "\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0e01\u0e30\u0e32\u0e33\u0e3f"+ + "\u0e46\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94"+ + "\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead"+ + "\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0edc\u0edf\u0f00"+ + "\u0f00\u0f40\u0f47\u0f49\u0f6c\u0f88\u0f8c\u1000\u102a\u103f\u103f\u1050"+ + "\u1055\u105a\u105d\u1061\u1061\u1065\u1066\u106e\u1070\u1075\u1081\u108e"+ + "\u108e\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa\u10fc\u1248\u124a"+ + "\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288\u128a\u128d\u1290"+ + "\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5\u12c8\u12d6\u12d8"+ + "\u1310\u1312\u1315\u1318\u135a\u1380\u138f\u13a0\u13f5\u13f8\u13fd\u1401"+ + "\u166c\u166f\u167f\u1681\u169a\u16a0\u16ea\u16ee\u16f8\u1700\u170c\u170e"+ + "\u1711\u1720\u1731\u1740\u1751\u1760\u176c\u176e\u1770\u1780\u17b3\u17d7"+ + "\u17d7\u17db\u17dc\u1820\u1877\u1880\u1884\u1887\u18a8\u18aa\u18aa\u18b0"+ + "\u18f5\u1900\u191e\u1950\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9\u1a00"+ + "\u1a16\u1a20\u1a54\u1aa7\u1aa7\u1b05\u1b33\u1b45\u1b4b\u1b83\u1ba0\u1bae"+ + "\u1baf\u1bba\u1be5\u1c00\u1c23\u1c4d\u1c4f\u1c5a\u1c7d\u1c80\u1c88\u1ce9"+ + "\u1cec\u1cee\u1cf1\u1cf5\u1cf6\u1d00\u1dbf\u1e00\u1f15\u1f18\u1f1d\u1f20"+ + "\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f"+ + "\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0"+ + "\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u203f\u2040\u2054"+ + "\u2054\u2071\u2071\u207f\u207f\u2090\u209c\u20a0\u20bf\u2102\u2102\u2107"+ + "\u2107\u210a\u2113\u2115\u2115\u2119\u211d\u2124\u2124\u2126\u2126\u2128"+ + "\u2128\u212a\u212d\u212f\u2139\u213c\u213f\u2145\u2149\u214e\u214e\u2160"+ + "\u2188\u2c00\u2c2e\u2c30\u2c5e\u2c60\u2ce4\u2ceb\u2cee\u2cf2\u2cf3\u2d00"+ + "\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30\u2d67\u2d6f\u2d6f\u2d80\u2d96\u2da0"+ + "\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8\u2dbe\u2dc0\u2dc6\u2dc8\u2dce\u2dd0"+ + "\u2dd6\u2dd8\u2dde\u2e2f\u2e2f\u3005\u3007\u3021\u3029\u3031\u3035\u3038"+ + "\u303c\u3041\u3096\u309d\u309f\u30a1\u30fa\u30fc\u30ff\u3105\u312e\u3131"+ + "\u318e\u31a0\u31ba\u31f0\u31ff\u3400\u4db5\u4e00\u8000\u9fea\u8000\ua000"+ + "\u8000\ua48c\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c\u8000\ua610"+ + "\u8000\ua61f\u8000\ua62a\u8000\ua62b\u8000\ua640\u8000\ua66e\u8000\ua67f"+ + "\u8000\ua69d\u8000\ua6a0\u8000\ua6ef\u8000\ua717\u8000\ua71f\u8000\ua722"+ + "\u8000\ua788\u8000\ua78b\u8000\ua7ae\u8000\ua7b0\u8000\ua7b7\u8000\ua7f7"+ + "\u8000\ua801\u8000\ua803\u8000\ua805\u8000\ua807\u8000\ua80a\u8000\ua80c"+ + "\u8000\ua822\u8000\ua838\u8000\ua838\u8000\ua840\u8000\ua873\u8000\ua882"+ + "\u8000\ua8b3\u8000\ua8f2\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb\u8000\ua8fd"+ + "\u8000\ua8fd\u8000\ua90a\u8000\ua925\u8000\ua930\u8000\ua946\u8000\ua960"+ + "\u8000\ua97c\u8000\ua984\u8000\ua9b2\u8000\ua9cf\u8000\ua9cf\u8000\ua9e0"+ + "\u8000\ua9e4\u8000\ua9e6\u8000\ua9ef\u8000\ua9fa\u8000\ua9fe\u8000\uaa00"+ + "\u8000\uaa28\u8000\uaa40\u8000\uaa42\u8000\uaa44\u8000\uaa4b\u8000\uaa60"+ + "\u8000\uaa76\u8000\uaa7a\u8000\uaa7a\u8000\uaa7e\u8000\uaaaf\u8000\uaab1"+ + "\u8000\uaab1\u8000\uaab5\u8000\uaab6\u8000\uaab9\u8000\uaabd\u8000\uaac0"+ + "\u8000\uaac0\u8000\uaac2\u8000\uaac2\u8000\uaadb\u8000\uaadd\u8000\uaae0"+ + "\u8000\uaaea\u8000\uaaf2\u8000\uaaf4\u8000\uab01\u8000\uab06\u8000\uab09"+ + "\u8000\uab0e\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26\u8000\uab28"+ + "\u8000\uab2e\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab65\u8000\uab70"+ + "\u8000\uabe2\u8000\uac00\u8000\ud7a3\u8000\ud7b0\u8000\ud7c6\u8000\ud7cb"+ + "\u8000\ud7fb\u8000\uf900\u8000\ufa6d\u8000\ufa70\u8000\ufad9\u8000\ufb00"+ + "\u8000\ufb06\u8000\ufb13\u8000\ufb17\u8000\ufb1d\u8000\ufb1d\u8000\ufb1f"+ + "\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c\u8000\ufb3e"+ + "\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44\u8000\ufb46"+ + "\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f\u8000\ufd92"+ + "\u8000\ufdc7\u8000\ufdf0\u8000\ufdfc\u8000\ufe33\u8000\ufe34\u8000\ufe4d"+ + "\u8000\ufe4f\u8000\ufe69\u8000\ufe69\u8000\ufe70\u8000\ufe74\u8000\ufe76"+ + "\u8000\ufefc\u8000\uff04\u8000\uff04\u8000\uff21\u8000\uff3a\u8000\uff3f"+ + "\u8000\uff3f\u8000\uff41\u8000\uff5a\u8000\uff66\u8000\uffbe\u8000\uffc2"+ + "\u8000\uffc7\u8000\uffca\u8000\uffcf\u8000\uffd2\u8000\uffd7\u8000\uffda"+ + "\u8000\uffdc\u8000\uffe0\u8000\uffe1\u8000\uffe5\u8000\uffe6\u00e4\u0000"+ + "09\u007f\u009f\u00ad\u00ad\u0300\u036f\u0483\u0487\u0591\u05bd\u05bf\u05bf"+ + "\u05c1\u05c2\u05c4\u05c5\u05c7\u05c7\u0600\u0605\u0610\u061a\u061c\u061c"+ + "\u064b\u0669\u0670\u0670\u06d6\u06dd\u06df\u06e4\u06e7\u06e8\u06ea\u06ed"+ + "\u06f0\u06f9\u070f\u070f\u0711\u0711\u0730\u074a\u07a6\u07b0\u07c0\u07c9"+ + "\u07eb\u07f3\u0816\u0819\u081b\u0823\u0825\u0827\u0829\u082d\u0859\u085b"+ + "\u08d4\u0903\u093a\u093c\u093e\u094f\u0951\u0957\u0962\u0963\u0966\u096f"+ + "\u0981\u0983\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7"+ + "\u09e2\u09e3\u09e6\u09ef\u0a01\u0a03\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48"+ + "\u0a4b\u0a4d\u0a51\u0a51\u0a66\u0a71\u0a75\u0a75\u0a81\u0a83\u0abc\u0abc"+ + "\u0abe\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae2\u0ae3\u0ae6\u0aef\u0afa\u0aff"+ + "\u0b01\u0b03\u0b3c\u0b3c\u0b3e\u0b44\u0b47\u0b48\u0b4b\u0b4d\u0b56\u0b57"+ + "\u0b62\u0b63\u0b66\u0b6f\u0b82\u0b82\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd"+ + "\u0bd7\u0bd7\u0be6\u0bef\u0c00\u0c03\u0c3e\u0c44\u0c46\u0c48\u0c4a\u0c4d"+ + "\u0c55\u0c56\u0c62\u0c63\u0c66\u0c6f\u0c81\u0c83\u0cbc\u0cbc\u0cbe\u0cc4"+ + "\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6\u0cef\u0d00\u0d03"+ + "\u0d3b\u0d3c\u0d3e\u0d44\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57\u0d62\u0d63"+ + "\u0d66\u0d6f\u0d82\u0d83\u0dca\u0dca\u0dcf\u0dd4\u0dd6\u0dd6\u0dd8\u0ddf"+ + "\u0de6\u0def\u0df2\u0df3\u0e31\u0e31\u0e34\u0e3a\u0e47\u0e4e\u0e50\u0e59"+ + "\u0eb1\u0eb1\u0eb4\u0eb9\u0ebb\u0ebc\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19"+ + "\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f3f\u0f71\u0f84"+ + "\u0f86\u0f87\u0f8d\u0f97\u0f99\u0fbc\u0fc6\u0fc6\u102b\u103e\u1040\u1049"+ + "\u1056\u1059\u105e\u1060\u1062\u1064\u1067\u106d\u1071\u1074\u1082\u108d"+ + "\u108f\u109d\u135d\u135f\u1712\u1714\u1732\u1734\u1752\u1753\u1772\u1773"+ + "\u17b4\u17d3\u17dd\u17dd\u17e0\u17e9\u180b\u180e\u1810\u1819\u1885\u1886"+ + "\u18a9\u18a9\u1920\u192b\u1930\u193b\u1946\u194f\u19d0\u19d9\u1a17\u1a1b"+ + "\u1a55\u1a5e\u1a60\u1a7c\u1a7f\u1a89\u1a90\u1a99\u1ab0\u1abd\u1b00\u1b04"+ + "\u1b34\u1b44\u1b50\u1b59\u1b6b\u1b73\u1b80\u1b82\u1ba1\u1bad\u1bb0\u1bb9"+ + "\u1be6\u1bf3\u1c24\u1c37\u1c40\u1c49\u1c50\u1c59\u1cd0\u1cd2\u1cd4\u1ce8"+ + "\u1ced\u1ced\u1cf2\u1cf4\u1cf7\u1cf9\u1dc0\u1df9\u1dfb\u1dff\u200b\u200f"+ + "\u202a\u202e\u2060\u2064\u2066\u206f\u20d0\u20dc\u20e1\u20e1\u20e5\u20f0"+ + "\u2cef\u2cf1\u2d7f\u2d7f\u2de0\u2dff\u302a\u302f\u3099\u309a\u8000\ua620"+ + "\u8000\ua629\u8000\ua66f\u8000\ua66f\u8000\ua674\u8000\ua67d\u8000\ua69e"+ + "\u8000\ua69f\u8000\ua6f0\u8000\ua6f1\u8000\ua802\u8000\ua802\u8000\ua806"+ + "\u8000\ua806\u8000\ua80b\u8000\ua80b\u8000\ua823\u8000\ua827\u8000\ua880"+ + "\u8000\ua881\u8000\ua8b4\u8000\ua8c5\u8000\ua8d0\u8000\ua8d9\u8000\ua8e0"+ + "\u8000\ua8f1\u8000\ua900\u8000\ua909\u8000\ua926\u8000\ua92d\u8000\ua947"+ + "\u8000\ua953\u8000\ua980\u8000\ua983\u8000\ua9b3\u8000\ua9c0\u8000\ua9d0"+ + "\u8000\ua9d9\u8000\ua9e5\u8000\ua9e5\u8000\ua9f0\u8000\ua9f9\u8000\uaa29"+ + "\u8000\uaa36\u8000\uaa43\u8000\uaa43\u8000\uaa4c\u8000\uaa4d\u8000\uaa50"+ + "\u8000\uaa59\u8000\uaa7b\u8000\uaa7d\u8000\uaab0\u8000\uaab0\u8000\uaab2"+ + "\u8000\uaab4\u8000\uaab7\u8000\uaab8\u8000\uaabe\u8000\uaabf\u8000\uaac1"+ + "\u8000\uaac1\u8000\uaaeb\u8000\uaaef\u8000\uaaf5\u8000\uaaf6\u8000\uabe3"+ + "\u8000\uabea\u8000\uabec\u8000\uabed\u8000\uabf0\u8000\uabf9\u8000\ufb1e"+ + "\u8000\ufb1e\u8000\ufe00\u8000\ufe0f\u8000\ufe20\u8000\ufe2f\u8000\ufeff"+ + "\u8000\ufeff\u8000\uff10\u8000\uff19\u8000\ufff9\u8000\ufffb\u0003\u0000"+ + "\t\n\f\r \u0002\u0000\n\n\r\r\u046d\u0000\u0001\u0001\u0000\u0000\u0000"+ + "\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+ + "\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000"+ + "\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f"+ + "\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013"+ + "\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017"+ + "\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b"+ + "\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f"+ + "\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000"+ + "\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000"+ + "\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000"+ + "-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001"+ + "\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000"+ + "\u0000\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000"+ + ";\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001"+ + "\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000"+ + "\u0000\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000"+ + "I\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001"+ + "\u0000\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000"+ + "\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000"+ + "W\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001"+ + "\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000"+ + "\u0000\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000"+ + "e\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000\u0000\u0000\u0000\u00b3"+ + "\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000\u0000\u0000\u0000\u00b9"+ + "\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9"+ + "\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd"+ + "\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1"+ + "\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5"+ + "\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9"+ + "\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd"+ + "\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1"+ + "\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5"+ + "\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9"+ + "\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed"+ + "\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1"+ + "\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5"+ + "\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9"+ + "\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd"+ + "\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000\u0101"+ + "\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000\u0105"+ + "\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000\u0109"+ + "\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000\u010d"+ + "\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000\u0111"+ + "\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000\u0115"+ + "\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000\u0119"+ + "\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000\u011d"+ + "\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000\u0121"+ + "\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000\u0129"+ + "\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000\u012d"+ + "\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000\u0131"+ + "\u0001\u0000\u0000\u0000\u0001\u0133\u0001\u0000\u0000\u0000\u0003\u013c"+ + "\u0001\u0000\u0000\u0000\u0005\u0143\u0001\u0000\u0000\u0000\u0007\u014b"+ + "\u0001\u0000\u0000\u0000\t\u0151\u0001\u0000\u0000\u0000\u000b\u0156\u0001"+ + "\u0000\u0000\u0000\r\u015b\u0001\u0000\u0000\u0000\u000f\u0161\u0001\u0000"+ + "\u0000\u0000\u0011\u0166\u0001\u0000\u0000\u0000\u0013\u016c\u0001\u0000"+ + "\u0000\u0000\u0015\u0172\u0001\u0000\u0000\u0000\u0017\u017b\u0001\u0000"+ + "\u0000\u0000\u0019\u0183\u0001\u0000\u0000\u0000\u001b\u0186\u0001\u0000"+ + "\u0000\u0000\u001d\u018d\u0001\u0000\u0000\u0000\u001f\u0192\u0001\u0000"+ + "\u0000\u0000!\u0197\u0001\u0000\u0000\u0000#\u019f\u0001\u0000\u0000\u0000"+ + "%\u01a5\u0001\u0000\u0000\u0000\'\u01ad\u0001\u0000\u0000\u0000)\u01b3"+ + "\u0001\u0000\u0000\u0000+\u01b7\u0001\u0000\u0000\u0000-\u01ba\u0001\u0000"+ + "\u0000\u0000/\u01bf\u0001\u0000\u0000\u00001\u01ca\u0001\u0000\u0000\u0000"+ + "3\u01d1\u0001\u0000\u0000\u00005\u01dc\u0001\u0000\u0000\u00007\u01e0"+ + "\u0001\u0000\u0000\u00009\u01ea\u0001\u0000\u0000\u0000;\u01ef\u0001\u0000"+ + "\u0000\u0000=\u01f6\u0001\u0000\u0000\u0000?\u01fa\u0001\u0000\u0000\u0000"+ + "A\u0202\u0001\u0000\u0000\u0000C\u020a\u0001\u0000\u0000\u0000E\u0214"+ + "\u0001\u0000\u0000\u0000G\u021b\u0001\u0000\u0000\u0000I\u0222\u0001\u0000"+ + "\u0000\u0000K\u0228\u0001\u0000\u0000\u0000M\u022f\u0001\u0000\u0000\u0000"+ + "O\u0238\u0001\u0000\u0000\u0000Q\u023e\u0001\u0000\u0000\u0000S\u0245"+ + "\u0001\u0000\u0000\u0000U\u0252\u0001\u0000\u0000\u0000W\u0257\u0001\u0000"+ + "\u0000\u0000Y\u025d\u0001\u0000\u0000\u0000[\u0264\u0001\u0000\u0000\u0000"+ + "]\u026e\u0001\u0000\u0000\u0000_\u0272\u0001\u0000\u0000\u0000a\u0277"+ + "\u0001\u0000\u0000\u0000c\u0280\u0001\u0000\u0000\u0000e\u028a\u0001\u0000"+ + "\u0000\u0000g\u028c\u0001\u0000\u0000\u0000i\u0290\u0001\u0000\u0000\u0000"+ + "k\u0294\u0001\u0000\u0000\u0000m\u0298\u0001\u0000\u0000\u0000o\u029c"+ + "\u0001\u0000\u0000\u0000q\u02a8\u0001\u0000\u0000\u0000s\u02aa\u0001\u0000"+ + "\u0000\u0000u\u02b3\u0001\u0000\u0000\u0000w\u02b5\u0001\u0000\u0000\u0000"+ + "y\u02b8\u0001\u0000\u0000\u0000{\u02be\u0001\u0000\u0000\u0000}\u02c1"+ + "\u0001\u0000\u0000\u0000\u007f\u02c5\u0001\u0000\u0000\u0000\u0081\u02c9"+ + "\u0001\u0000\u0000\u0000\u0083\u02d0\u0001\u0000\u0000\u0000\u0085\u02d3"+ + "\u0001\u0000\u0000\u0000\u0087\u02d9\u0001\u0000\u0000\u0000\u0089\u02db"+ + "\u0001\u0000\u0000\u0000\u008b\u02e1\u0001\u0000\u0000\u0000\u008d\u02e8"+ + "\u0001\u0000\u0000\u0000\u008f\u02eb\u0001\u0000\u0000\u0000\u0091\u02f1"+ + "\u0001\u0000\u0000\u0000\u0093\u02f3\u0001\u0000\u0000\u0000\u0095\u02f7"+ + "\u0001\u0000\u0000\u0000\u0097\u02fe\u0001\u0000\u0000\u0000\u0099\u0301"+ + "\u0001\u0000\u0000\u0000\u009b\u0307\u0001\u0000\u0000\u0000\u009d\u030b"+ + "\u0001\u0000\u0000\u0000\u009f\u0328\u0001\u0000\u0000\u0000\u00a1\u032a"+ + "\u0001\u0000\u0000\u0000\u00a3\u032d\u0001\u0000\u0000\u0000\u00a5\u0330"+ + "\u0001\u0000\u0000\u0000\u00a7\u0334\u0001\u0000\u0000\u0000\u00a9\u0336"+ + "\u0001\u0000\u0000\u0000\u00ab\u0338\u0001\u0000\u0000\u0000\u00ad\u0348"+ + "\u0001\u0000\u0000\u0000\u00af\u034a\u0001\u0000\u0000\u0000\u00b1\u034d"+ + "\u0001\u0000\u0000\u0000\u00b3\u0358\u0001\u0000\u0000\u0000\u00b5\u0362"+ + "\u0001\u0000\u0000\u0000\u00b7\u0364\u0001\u0000\u0000\u0000\u00b9\u0366"+ + "\u0001\u0000\u0000\u0000\u00bb\u036d\u0001\u0000\u0000\u0000\u00bd\u0373"+ + "\u0001\u0000\u0000\u0000\u00bf\u0380\u0001\u0000\u0000\u0000\u00c1\u03a2"+ + "\u0001\u0000\u0000\u0000\u00c3\u03a4\u0001\u0000\u0000\u0000\u00c5\u03a6"+ + "\u0001\u0000\u0000\u0000\u00c7\u03b1\u0001\u0000\u0000\u0000\u00c9\u03b6"+ + "\u0001\u0000\u0000\u0000\u00cb\u03b8\u0001\u0000\u0000\u0000\u00cd\u03ba"+ + "\u0001\u0000\u0000\u0000\u00cf\u03bc\u0001\u0000\u0000\u0000\u00d1\u03be"+ + "\u0001\u0000\u0000\u0000\u00d3\u03c0\u0001\u0000\u0000\u0000\u00d5\u03c2"+ + "\u0001\u0000\u0000\u0000\u00d7\u03c4\u0001\u0000\u0000\u0000\u00d9\u03c6"+ + "\u0001\u0000\u0000\u0000\u00db\u03c8\u0001\u0000\u0000\u0000\u00dd\u03ca"+ + "\u0001\u0000\u0000\u0000\u00df\u03cc\u0001\u0000\u0000\u0000\u00e1\u03ce"+ + "\u0001\u0000\u0000\u0000\u00e3\u03d0\u0001\u0000\u0000\u0000\u00e5\u03d2"+ + "\u0001\u0000\u0000\u0000\u00e7\u03d4\u0001\u0000\u0000\u0000\u00e9\u03d6"+ + "\u0001\u0000\u0000\u0000\u00eb\u03d9\u0001\u0000\u0000\u0000\u00ed\u03dc"+ + "\u0001\u0000\u0000\u0000\u00ef\u03df\u0001\u0000\u0000\u0000\u00f1\u03e2"+ + "\u0001\u0000\u0000\u0000\u00f3\u03e5\u0001\u0000\u0000\u0000\u00f5\u03e8"+ + "\u0001\u0000\u0000\u0000\u00f7\u03eb\u0001\u0000\u0000\u0000\u00f9\u03ee"+ + "\u0001\u0000\u0000\u0000\u00fb\u03f0\u0001\u0000\u0000\u0000\u00fd\u03f2"+ + "\u0001\u0000\u0000\u0000\u00ff\u03f4\u0001\u0000\u0000\u0000\u0101\u03f6"+ + "\u0001\u0000\u0000\u0000\u0103\u03f8\u0001\u0000\u0000\u0000\u0105\u03fa"+ + "\u0001\u0000\u0000\u0000\u0107\u03fc\u0001\u0000\u0000\u0000\u0109\u03fe"+ + "\u0001\u0000\u0000\u0000\u010b\u0401\u0001\u0000\u0000\u0000\u010d\u0404"+ + "\u0001\u0000\u0000\u0000\u010f\u0407\u0001\u0000\u0000\u0000\u0111\u040a"+ + "\u0001\u0000\u0000\u0000\u0113\u040d\u0001\u0000\u0000\u0000\u0115\u0410"+ + "\u0001\u0000\u0000\u0000\u0117\u0413\u0001\u0000\u0000\u0000\u0119\u0416"+ + "\u0001\u0000\u0000\u0000\u011b\u0419\u0001\u0000\u0000\u0000\u011d\u041c"+ + "\u0001\u0000\u0000\u0000\u011f\u0420\u0001\u0000\u0000\u0000\u0121\u0424"+ + "\u0001\u0000\u0000\u0000\u0123\u0429\u0001\u0000\u0000\u0000\u0125\u0431"+ + "\u0001\u0000\u0000\u0000\u0127\u0435\u0001\u0000\u0000\u0000\u0129\u0437"+ + "\u0001\u0000\u0000\u0000\u012b\u0439\u0001\u0000\u0000\u0000\u012d\u043e"+ + "\u0001\u0000\u0000\u0000\u012f\u0444\u0001\u0000\u0000\u0000\u0131\u0452"+ + "\u0001\u0000\u0000\u0000\u0133\u0134\u0005a\u0000\u0000\u0134\u0135\u0005"+ + "b\u0000\u0000\u0135\u0136\u0005s\u0000\u0000\u0136\u0137\u0005t\u0000"+ + "\u0000\u0137\u0138\u0005r\u0000\u0000\u0138\u0139\u0005a\u0000\u0000\u0139"+ + "\u013a\u0005c\u0000\u0000\u013a\u013b\u0005t\u0000\u0000\u013b\u0002\u0001"+ + "\u0000\u0000\u0000\u013c\u013d\u0005a\u0000\u0000\u013d\u013e\u0005s\u0000"+ + "\u0000\u013e\u013f\u0005s\u0000\u0000\u013f\u0140\u0005e\u0000\u0000\u0140"+ + "\u0141\u0005r\u0000\u0000\u0141\u0142\u0005t\u0000\u0000\u0142\u0004\u0001"+ + "\u0000\u0000\u0000\u0143\u0144\u0005b\u0000\u0000\u0144\u0145\u0005o\u0000"+ + "\u0000\u0145\u0146\u0005o\u0000\u0000\u0146\u0147\u0005l\u0000\u0000\u0147"+ + "\u0148\u0005e\u0000\u0000\u0148\u0149\u0005a\u0000\u0000\u0149\u014a\u0005"+ + "n\u0000\u0000\u014a\u0006\u0001\u0000\u0000\u0000\u014b\u014c\u0005b\u0000"+ + "\u0000\u014c\u014d\u0005r\u0000\u0000\u014d\u014e\u0005e\u0000\u0000\u014e"+ + "\u014f\u0005a\u0000\u0000\u014f\u0150\u0005k\u0000\u0000\u0150\b\u0001"+ + "\u0000\u0000\u0000\u0151\u0152\u0005b\u0000\u0000\u0152\u0153\u0005y\u0000"+ + "\u0000\u0153\u0154\u0005t\u0000\u0000\u0154\u0155\u0005e\u0000\u0000\u0155"+ + "\n\u0001\u0000\u0000\u0000\u0156\u0157\u0005c\u0000\u0000\u0157\u0158"+ + "\u0005a\u0000\u0000\u0158\u0159\u0005s\u0000\u0000\u0159\u015a\u0005e"+ + "\u0000\u0000\u015a\f\u0001\u0000\u0000\u0000\u015b\u015c\u0005c\u0000"+ + "\u0000\u015c\u015d\u0005a\u0000\u0000\u015d\u015e\u0005t\u0000\u0000\u015e"+ + "\u015f\u0005c\u0000\u0000\u015f\u0160\u0005h\u0000\u0000\u0160\u000e\u0001"+ + "\u0000\u0000\u0000\u0161\u0162\u0005c\u0000\u0000\u0162\u0163\u0005h\u0000"+ + "\u0000\u0163\u0164\u0005a\u0000\u0000\u0164\u0165\u0005r\u0000\u0000\u0165"+ + "\u0010\u0001\u0000\u0000\u0000\u0166\u0167\u0005c\u0000\u0000\u0167\u0168"+ + "\u0005l\u0000\u0000\u0168\u0169\u0005a\u0000\u0000\u0169\u016a\u0005s"+ + "\u0000\u0000\u016a\u016b\u0005s\u0000\u0000\u016b\u0012\u0001\u0000\u0000"+ + "\u0000\u016c\u016d\u0005c\u0000\u0000\u016d\u016e\u0005o\u0000\u0000\u016e"+ + "\u016f\u0005n\u0000\u0000\u016f\u0170\u0005s\u0000\u0000\u0170\u0171\u0005"+ + "t\u0000\u0000\u0171\u0014\u0001\u0000\u0000\u0000\u0172\u0173\u0005c\u0000"+ + "\u0000\u0173\u0174\u0005o\u0000\u0000\u0174\u0175\u0005n\u0000\u0000\u0175"+ + "\u0176\u0005t\u0000\u0000\u0176\u0177\u0005i\u0000\u0000\u0177\u0178\u0005"+ + "n\u0000\u0000\u0178\u0179\u0005u\u0000\u0000\u0179\u017a\u0005e\u0000"+ + "\u0000\u017a\u0016\u0001\u0000\u0000\u0000\u017b\u017c\u0005d\u0000\u0000"+ + "\u017c\u017d\u0005e\u0000\u0000\u017d\u017e\u0005f\u0000\u0000\u017e\u017f"+ + "\u0005a\u0000\u0000\u017f\u0180\u0005u\u0000\u0000\u0180\u0181\u0005l"+ + "\u0000\u0000\u0181\u0182\u0005t\u0000\u0000\u0182\u0018\u0001\u0000\u0000"+ + "\u0000\u0183\u0184\u0005d\u0000\u0000\u0184\u0185\u0005o\u0000\u0000\u0185"+ + "\u001a\u0001\u0000\u0000\u0000\u0186\u0187\u0005d\u0000\u0000\u0187\u0188"+ + "\u0005o\u0000\u0000\u0188\u0189\u0005u\u0000\u0000\u0189\u018a\u0005b"+ + "\u0000\u0000\u018a\u018b\u0005l\u0000\u0000\u018b\u018c\u0005e\u0000\u0000"+ + "\u018c\u001c\u0001\u0000\u0000\u0000\u018d\u018e\u0005e\u0000\u0000\u018e"+ + "\u018f\u0005l\u0000\u0000\u018f\u0190\u0005s\u0000\u0000\u0190\u0191\u0005"+ + "e\u0000\u0000\u0191\u001e\u0001\u0000\u0000\u0000\u0192\u0193\u0005e\u0000"+ + "\u0000\u0193\u0194\u0005n\u0000\u0000\u0194\u0195\u0005u\u0000\u0000\u0195"+ + "\u0196\u0005m\u0000\u0000\u0196 \u0001\u0000\u0000\u0000\u0197\u0198\u0005"+ + "e\u0000\u0000\u0198\u0199\u0005x\u0000\u0000\u0199\u019a\u0005t\u0000"+ + "\u0000\u019a\u019b\u0005e\u0000\u0000\u019b\u019c\u0005n\u0000\u0000\u019c"+ + "\u019d\u0005d\u0000\u0000\u019d\u019e\u0005s\u0000\u0000\u019e\"\u0001"+ + "\u0000\u0000\u0000\u019f\u01a0\u0005f\u0000\u0000\u01a0\u01a1\u0005i\u0000"+ + "\u0000\u01a1\u01a2\u0005n\u0000\u0000\u01a2\u01a3\u0005a\u0000\u0000\u01a3"+ + "\u01a4\u0005l\u0000\u0000\u01a4$\u0001\u0000\u0000\u0000\u01a5\u01a6\u0005"+ + "f\u0000\u0000\u01a6\u01a7\u0005i\u0000\u0000\u01a7\u01a8\u0005n\u0000"+ + "\u0000\u01a8\u01a9\u0005a\u0000\u0000\u01a9\u01aa\u0005l\u0000\u0000\u01aa"+ + "\u01ab\u0005l\u0000\u0000\u01ab\u01ac\u0005y\u0000\u0000\u01ac&\u0001"+ + "\u0000\u0000\u0000\u01ad\u01ae\u0005f\u0000\u0000\u01ae\u01af\u0005l\u0000"+ + "\u0000\u01af\u01b0\u0005o\u0000\u0000\u01b0\u01b1\u0005a\u0000\u0000\u01b1"+ + "\u01b2\u0005t\u0000\u0000\u01b2(\u0001\u0000\u0000\u0000\u01b3\u01b4\u0005"+ + "f\u0000\u0000\u01b4\u01b5\u0005o\u0000\u0000\u01b5\u01b6\u0005r\u0000"+ + "\u0000\u01b6*\u0001\u0000\u0000\u0000\u01b7\u01b8\u0005i\u0000\u0000\u01b8"+ + "\u01b9\u0005f\u0000\u0000\u01b9,\u0001\u0000\u0000\u0000\u01ba\u01bb\u0005"+ + "g\u0000\u0000\u01bb\u01bc\u0005o\u0000\u0000\u01bc\u01bd\u0005t\u0000"+ + "\u0000\u01bd\u01be\u0005o\u0000\u0000\u01be.\u0001\u0000\u0000\u0000\u01bf"+ + "\u01c0\u0005i\u0000\u0000\u01c0\u01c1\u0005m\u0000\u0000\u01c1\u01c2\u0005"+ + "p\u0000\u0000\u01c2\u01c3\u0005l\u0000\u0000\u01c3\u01c4\u0005e\u0000"+ + "\u0000\u01c4\u01c5\u0005m\u0000\u0000\u01c5\u01c6\u0005e\u0000\u0000\u01c6"+ + "\u01c7\u0005n\u0000\u0000\u01c7\u01c8\u0005t\u0000\u0000\u01c8\u01c9\u0005"+ + "s\u0000\u0000\u01c90\u0001\u0000\u0000\u0000\u01ca\u01cb\u0005i\u0000"+ + "\u0000\u01cb\u01cc\u0005m\u0000\u0000\u01cc\u01cd\u0005p\u0000\u0000\u01cd"+ + "\u01ce\u0005o\u0000\u0000\u01ce\u01cf\u0005r\u0000\u0000\u01cf\u01d0\u0005"+ + "t\u0000\u0000\u01d02\u0001\u0000\u0000\u0000\u01d1\u01d2\u0005i\u0000"+ + "\u0000\u01d2\u01d3\u0005n\u0000\u0000\u01d3\u01d4\u0005s\u0000\u0000\u01d4"+ + "\u01d5\u0005t\u0000\u0000\u01d5\u01d6\u0005a\u0000\u0000\u01d6\u01d7\u0005"+ + "n\u0000\u0000\u01d7\u01d8\u0005c\u0000\u0000\u01d8\u01d9\u0005e\u0000"+ + "\u0000\u01d9\u01da\u0005o\u0000\u0000\u01da\u01db\u0005f\u0000\u0000\u01db"+ + "4\u0001\u0000\u0000\u0000\u01dc\u01dd\u0005i\u0000\u0000\u01dd\u01de\u0005"+ + "n\u0000\u0000\u01de\u01df\u0005t\u0000\u0000\u01df6\u0001\u0000\u0000"+ + "\u0000\u01e0\u01e1\u0005i\u0000\u0000\u01e1\u01e2\u0005n\u0000\u0000\u01e2"+ + "\u01e3\u0005t\u0000\u0000\u01e3\u01e4\u0005e\u0000\u0000\u01e4\u01e5\u0005"+ + "r\u0000\u0000\u01e5\u01e6\u0005f\u0000\u0000\u01e6\u01e7\u0005a\u0000"+ + "\u0000\u01e7\u01e8\u0005c\u0000\u0000\u01e8\u01e9\u0005e\u0000\u0000\u01e9"+ + "8\u0001\u0000\u0000\u0000\u01ea\u01eb\u0005l\u0000\u0000\u01eb\u01ec\u0005"+ + "o\u0000\u0000\u01ec\u01ed\u0005n\u0000\u0000\u01ed\u01ee\u0005g\u0000"+ + "\u0000\u01ee:\u0001\u0000\u0000\u0000\u01ef\u01f0\u0005n\u0000\u0000\u01f0"+ + "\u01f1\u0005a\u0000\u0000\u01f1\u01f2\u0005t\u0000\u0000\u01f2\u01f3\u0005"+ + "i\u0000\u0000\u01f3\u01f4\u0005v\u0000\u0000\u01f4\u01f5\u0005e\u0000"+ + "\u0000\u01f5<\u0001\u0000\u0000\u0000\u01f6\u01f7\u0005n\u0000\u0000\u01f7"+ + "\u01f8\u0005e\u0000\u0000\u01f8\u01f9\u0005w\u0000\u0000\u01f9>\u0001"+ + "\u0000\u0000\u0000\u01fa\u01fb\u0005p\u0000\u0000\u01fb\u01fc\u0005a\u0000"+ + "\u0000\u01fc\u01fd\u0005c\u0000\u0000\u01fd\u01fe\u0005k\u0000\u0000\u01fe"+ + "\u01ff\u0005a\u0000\u0000\u01ff\u0200\u0005g\u0000\u0000\u0200\u0201\u0005"+ + "e\u0000\u0000\u0201@\u0001\u0000\u0000\u0000\u0202\u0203\u0005p\u0000"+ + "\u0000\u0203\u0204\u0005r\u0000\u0000\u0204\u0205\u0005i\u0000\u0000\u0205"+ + "\u0206\u0005v\u0000\u0000\u0206\u0207\u0005a\u0000\u0000\u0207\u0208\u0005"+ + "t\u0000\u0000\u0208\u0209\u0005e\u0000\u0000\u0209B\u0001\u0000\u0000"+ + "\u0000\u020a\u020b\u0005p\u0000\u0000\u020b\u020c\u0005r\u0000\u0000\u020c"+ + "\u020d\u0005o\u0000\u0000\u020d\u020e\u0005t\u0000\u0000\u020e\u020f\u0005"+ + "e\u0000\u0000\u020f\u0210\u0005c\u0000\u0000\u0210\u0211\u0005t\u0000"+ + "\u0000\u0211\u0212\u0005e\u0000\u0000\u0212\u0213\u0005d\u0000\u0000\u0213"+ + "D\u0001\u0000\u0000\u0000\u0214\u0215\u0005p\u0000\u0000\u0215\u0216\u0005"+ + "u\u0000\u0000\u0216\u0217\u0005b\u0000\u0000\u0217\u0218\u0005l\u0000"+ + "\u0000\u0218\u0219\u0005i\u0000\u0000\u0219\u021a\u0005c\u0000\u0000\u021a"+ + "F\u0001\u0000\u0000\u0000\u021b\u021c\u0005r\u0000\u0000\u021c\u021d\u0005"+ + "e\u0000\u0000\u021d\u021e\u0005t\u0000\u0000\u021e\u021f\u0005u\u0000"+ + "\u0000\u021f\u0220\u0005r\u0000\u0000\u0220\u0221\u0005n\u0000\u0000\u0221"+ + "H\u0001\u0000\u0000\u0000\u0222\u0223\u0005s\u0000\u0000\u0223\u0224\u0005"+ + "h\u0000\u0000\u0224\u0225\u0005o\u0000\u0000\u0225\u0226\u0005r\u0000"+ + "\u0000\u0226\u0227\u0005t\u0000\u0000\u0227J\u0001\u0000\u0000\u0000\u0228"+ + "\u0229\u0005s\u0000\u0000\u0229\u022a\u0005t\u0000\u0000\u022a\u022b\u0005"+ + "a\u0000\u0000\u022b\u022c\u0005t\u0000\u0000\u022c\u022d\u0005i\u0000"+ + "\u0000\u022d\u022e\u0005c\u0000\u0000\u022eL\u0001\u0000\u0000\u0000\u022f"+ + "\u0230\u0005s\u0000\u0000\u0230\u0231\u0005t\u0000\u0000\u0231\u0232\u0005"+ + "r\u0000\u0000\u0232\u0233\u0005i\u0000\u0000\u0233\u0234\u0005c\u0000"+ + "\u0000\u0234\u0235\u0005t\u0000\u0000\u0235\u0236\u0005f\u0000\u0000\u0236"+ + "\u0237\u0005p\u0000\u0000\u0237N\u0001\u0000\u0000\u0000\u0238\u0239\u0005"+ + "s\u0000\u0000\u0239\u023a\u0005u\u0000\u0000\u023a\u023b\u0005p\u0000"+ + "\u0000\u023b\u023c\u0005e\u0000\u0000\u023c\u023d\u0005r\u0000\u0000\u023d"+ + "P\u0001\u0000\u0000\u0000\u023e\u023f\u0005s\u0000\u0000\u023f\u0240\u0005"+ + "w\u0000\u0000\u0240\u0241\u0005i\u0000\u0000\u0241\u0242\u0005t\u0000"+ + "\u0000\u0242\u0243\u0005c\u0000\u0000\u0243\u0244\u0005h\u0000\u0000\u0244"+ + "R\u0001\u0000\u0000\u0000\u0245\u0246\u0005s\u0000\u0000\u0246\u0247\u0005"+ + "y\u0000\u0000\u0247\u0248\u0005n\u0000\u0000\u0248\u0249\u0005c\u0000"+ + "\u0000\u0249\u024a\u0005h\u0000\u0000\u024a\u024b\u0005r\u0000\u0000\u024b"+ + "\u024c\u0005o\u0000\u0000\u024c\u024d\u0005n\u0000\u0000\u024d\u024e\u0005"+ + "i\u0000\u0000\u024e\u024f\u0005z\u0000\u0000\u024f\u0250\u0005e\u0000"+ + "\u0000\u0250\u0251\u0005d\u0000\u0000\u0251T\u0001\u0000\u0000\u0000\u0252"+ + "\u0253\u0005t\u0000\u0000\u0253\u0254\u0005h\u0000\u0000\u0254\u0255\u0005"+ + "i\u0000\u0000\u0255\u0256\u0005s\u0000\u0000\u0256V\u0001\u0000\u0000"+ + "\u0000\u0257\u0258\u0005t\u0000\u0000\u0258\u0259\u0005h\u0000\u0000\u0259"+ + "\u025a\u0005r\u0000\u0000\u025a\u025b\u0005o\u0000\u0000\u025b\u025c\u0005"+ + "w\u0000\u0000\u025cX\u0001\u0000\u0000\u0000\u025d\u025e\u0005t\u0000"+ + "\u0000\u025e\u025f\u0005h\u0000\u0000\u025f\u0260\u0005r\u0000\u0000\u0260"+ + "\u0261\u0005o\u0000\u0000\u0261\u0262\u0005w\u0000\u0000\u0262\u0263\u0005"+ + "s\u0000\u0000\u0263Z\u0001\u0000\u0000\u0000\u0264\u0265\u0005t\u0000"+ + "\u0000\u0265\u0266\u0005r\u0000\u0000\u0266\u0267\u0005a\u0000\u0000\u0267"+ + "\u0268\u0005n\u0000\u0000\u0268\u0269\u0005s\u0000\u0000\u0269\u026a\u0005"+ + "i\u0000\u0000\u026a\u026b\u0005e\u0000\u0000\u026b\u026c\u0005n\u0000"+ + "\u0000\u026c\u026d\u0005t\u0000\u0000\u026d\\\u0001\u0000\u0000\u0000"+ + "\u026e\u026f\u0005t\u0000\u0000\u026f\u0270\u0005r\u0000\u0000\u0270\u0271"+ + "\u0005y\u0000\u0000\u0271^\u0001\u0000\u0000\u0000\u0272\u0273\u0005v"+ + "\u0000\u0000\u0273\u0274\u0005o\u0000\u0000\u0274\u0275\u0005i\u0000\u0000"+ + "\u0275\u0276\u0005d\u0000\u0000\u0276`\u0001\u0000\u0000\u0000\u0277\u0278"+ + "\u0005v\u0000\u0000\u0278\u0279\u0005o\u0000\u0000\u0279\u027a\u0005l"+ + "\u0000\u0000\u027a\u027b\u0005a\u0000\u0000\u027b\u027c\u0005t\u0000\u0000"+ + "\u027c\u027d\u0005i\u0000\u0000\u027d\u027e\u0005l\u0000\u0000\u027e\u027f"+ + "\u0005e\u0000\u0000\u027fb\u0001\u0000\u0000\u0000\u0280\u0281\u0005w"+ + "\u0000\u0000\u0281\u0282\u0005h\u0000\u0000\u0282\u0283\u0005i\u0000\u0000"+ + "\u0283\u0284\u0005l\u0000\u0000\u0284\u0285\u0005e\u0000\u0000\u0285d"+ + "\u0001\u0000\u0000\u0000\u0286\u028b\u0003g3\u0000\u0287\u028b\u0003i"+ + "4\u0000\u0288\u028b\u0003k5\u0000\u0289\u028b\u0003m6\u0000\u028a\u0286"+ + "\u0001\u0000\u0000\u0000\u028a\u0287\u0001\u0000\u0000\u0000\u028a\u0288"+ + "\u0001\u0000\u0000\u0000\u028a\u0289\u0001\u0000\u0000\u0000\u028bf\u0001"+ + "\u0000\u0000\u0000\u028c\u028e\u0003q8\u0000\u028d\u028f\u0003o7\u0000"+ + "\u028e\u028d\u0001\u0000\u0000\u0000\u028e\u028f\u0001\u0000\u0000\u0000"+ + "\u028fh\u0001\u0000\u0000\u0000\u0290\u0292\u0003\u007f?\u0000\u0291\u0293"+ + "\u0003o7\u0000\u0292\u0291\u0001\u0000\u0000\u0000\u0292\u0293\u0001\u0000"+ + "\u0000\u0000\u0293j\u0001\u0000\u0000\u0000\u0294\u0296\u0003\u0089D\u0000"+ + "\u0295\u0297\u0003o7\u0000\u0296\u0295\u0001\u0000\u0000\u0000\u0296\u0297"+ + "\u0001\u0000\u0000\u0000\u0297l\u0001\u0000\u0000\u0000\u0298\u029a\u0003"+ + "\u0093I\u0000\u0299\u029b\u0003o7\u0000\u029a\u0299\u0001\u0000\u0000"+ + "\u0000\u029a\u029b\u0001\u0000\u0000\u0000\u029bn\u0001\u0000\u0000\u0000"+ + "\u029c\u029d\u0007\u0000\u0000\u0000\u029dp\u0001\u0000\u0000\u0000\u029e"+ + "\u02a9\u00050\u0000\u0000\u029f\u02a6\u0003w;\u0000\u02a0\u02a2\u0003"+ + "s9\u0000\u02a1\u02a0\u0001\u0000\u0000\u0000\u02a1\u02a2\u0001\u0000\u0000"+ + "\u0000\u02a2\u02a7\u0001\u0000\u0000\u0000\u02a3\u02a4\u0003}>\u0000\u02a4"+ + "\u02a5\u0003s9\u0000\u02a5\u02a7\u0001\u0000\u0000\u0000\u02a6\u02a1\u0001"+ + "\u0000\u0000\u0000\u02a6\u02a3\u0001\u0000\u0000\u0000\u02a7\u02a9\u0001"+ + "\u0000\u0000\u0000\u02a8\u029e\u0001\u0000\u0000\u0000\u02a8\u029f\u0001"+ + "\u0000\u0000\u0000\u02a9r\u0001\u0000\u0000\u0000\u02aa\u02af\u0003u:"+ + "\u0000\u02ab\u02ad\u0003y<\u0000\u02ac\u02ab\u0001\u0000\u0000\u0000\u02ac"+ + "\u02ad\u0001\u0000\u0000\u0000\u02ad\u02ae\u0001\u0000\u0000\u0000\u02ae"+ + "\u02b0\u0003u:\u0000\u02af\u02ac\u0001\u0000\u0000\u0000\u02af\u02b0\u0001"+ + "\u0000\u0000\u0000\u02b0t\u0001\u0000\u0000\u0000\u02b1\u02b4\u00050\u0000"+ + "\u0000\u02b2\u02b4\u0003w;\u0000\u02b3\u02b1\u0001\u0000\u0000\u0000\u02b3"+ + "\u02b2\u0001\u0000\u0000\u0000\u02b4v\u0001\u0000\u0000\u0000\u02b5\u02b6"+ + "\u0007\u0001\u0000\u0000\u02b6x\u0001\u0000\u0000\u0000\u02b7\u02b9\u0003"+ + "{=\u0000\u02b8\u02b7\u0001\u0000\u0000\u0000\u02b9\u02ba\u0001\u0000\u0000"+ + "\u0000\u02ba\u02b8\u0001\u0000\u0000\u0000\u02ba\u02bb\u0001\u0000\u0000"+ + "\u0000\u02bbz\u0001\u0000\u0000\u0000\u02bc\u02bf\u0003u:\u0000\u02bd"+ + "\u02bf\u0005_\u0000\u0000\u02be\u02bc\u0001\u0000\u0000\u0000\u02be\u02bd"+ + "\u0001\u0000\u0000\u0000\u02bf|\u0001\u0000\u0000\u0000\u02c0\u02c2\u0005"+ + "_\u0000\u0000\u02c1\u02c0\u0001\u0000\u0000\u0000\u02c2\u02c3\u0001\u0000"+ + "\u0000\u0000\u02c3\u02c1\u0001\u0000\u0000\u0000\u02c3\u02c4\u0001\u0000"+ + "\u0000\u0000\u02c4~\u0001\u0000\u0000\u0000\u02c5\u02c6\u00050\u0000\u0000"+ + "\u02c6\u02c7\u0007\u0002\u0000\u0000\u02c7\u02c8\u0003\u0081@\u0000\u02c8"+ + "\u0080\u0001\u0000\u0000\u0000\u02c9\u02ce\u0003\u0083A\u0000\u02ca\u02cc"+ + "\u0003\u0085B\u0000\u02cb\u02ca\u0001\u0000\u0000\u0000\u02cb\u02cc\u0001"+ + "\u0000\u0000\u0000\u02cc\u02cd\u0001\u0000\u0000\u0000\u02cd\u02cf\u0003"+ + "\u0083A\u0000\u02ce\u02cb\u0001\u0000\u0000\u0000\u02ce\u02cf\u0001\u0000"+ + "\u0000\u0000\u02cf\u0082\u0001\u0000\u0000\u0000\u02d0\u02d1\u0007\u0003"+ + "\u0000\u0000\u02d1\u0084\u0001\u0000\u0000\u0000\u02d2\u02d4\u0003\u0087"+ + "C\u0000\u02d3\u02d2\u0001\u0000\u0000\u0000\u02d4\u02d5\u0001\u0000\u0000"+ + "\u0000\u02d5\u02d3\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000\u0000"+ + "\u0000\u02d6\u0086\u0001\u0000\u0000\u0000\u02d7\u02da\u0003\u0083A\u0000"+ + "\u02d8\u02da\u0005_\u0000\u0000\u02d9\u02d7\u0001\u0000\u0000\u0000\u02d9"+ + "\u02d8\u0001\u0000\u0000\u0000\u02da\u0088\u0001\u0000\u0000\u0000\u02db"+ + "\u02dd\u00050\u0000\u0000\u02dc\u02de\u0003}>\u0000\u02dd\u02dc\u0001"+ + "\u0000\u0000\u0000\u02dd\u02de\u0001\u0000\u0000\u0000\u02de\u02df\u0001"+ + "\u0000\u0000\u0000\u02df\u02e0\u0003\u008bE\u0000\u02e0\u008a\u0001\u0000"+ + "\u0000\u0000\u02e1\u02e6\u0003\u008dF\u0000\u02e2\u02e4\u0003\u008fG\u0000"+ + "\u02e3\u02e2\u0001\u0000\u0000\u0000\u02e3\u02e4\u0001\u0000\u0000\u0000"+ + "\u02e4\u02e5\u0001\u0000\u0000\u0000\u02e5\u02e7\u0003\u008dF\u0000\u02e6"+ + "\u02e3\u0001\u0000\u0000\u0000\u02e6\u02e7\u0001\u0000\u0000\u0000\u02e7"+ + "\u008c\u0001\u0000\u0000\u0000\u02e8\u02e9\u0007\u0004\u0000\u0000\u02e9"+ + "\u008e\u0001\u0000\u0000\u0000\u02ea\u02ec\u0003\u0091H\u0000\u02eb\u02ea"+ + "\u0001\u0000\u0000\u0000\u02ec\u02ed\u0001\u0000\u0000\u0000\u02ed\u02eb"+ + "\u0001\u0000\u0000\u0000\u02ed\u02ee\u0001\u0000\u0000\u0000\u02ee\u0090"+ + "\u0001\u0000\u0000\u0000\u02ef\u02f2\u0003\u008dF\u0000\u02f0\u02f2\u0005"+ + "_\u0000\u0000\u02f1\u02ef\u0001\u0000\u0000\u0000\u02f1\u02f0\u0001\u0000"+ + "\u0000\u0000\u02f2\u0092\u0001\u0000\u0000\u0000\u02f3\u02f4\u00050\u0000"+ + "\u0000\u02f4\u02f5\u0007\u0005\u0000\u0000\u02f5\u02f6\u0003\u0095J\u0000"+ + "\u02f6\u0094\u0001\u0000\u0000\u0000\u02f7\u02fc\u0003\u0097K\u0000\u02f8"+ + "\u02fa\u0003\u0099L\u0000\u02f9\u02f8\u0001\u0000\u0000\u0000\u02f9\u02fa"+ + "\u0001\u0000\u0000\u0000\u02fa\u02fb\u0001\u0000\u0000\u0000\u02fb\u02fd"+ + "\u0003\u0097K\u0000\u02fc\u02f9\u0001\u0000\u0000\u0000\u02fc\u02fd\u0001"+ + "\u0000\u0000\u0000\u02fd\u0096\u0001\u0000\u0000\u0000\u02fe\u02ff\u0007"+ + "\u0006\u0000\u0000\u02ff\u0098\u0001\u0000\u0000\u0000\u0300\u0302\u0003"+ + "\u009bM\u0000\u0301\u0300\u0001\u0000\u0000\u0000\u0302\u0303\u0001\u0000"+ + "\u0000\u0000\u0303\u0301\u0001\u0000\u0000\u0000\u0303\u0304\u0001\u0000"+ + "\u0000\u0000\u0304\u009a\u0001\u0000\u0000\u0000\u0305\u0308\u0003\u0097"+ + "K\u0000\u0306\u0308\u0005_\u0000\u0000\u0307\u0305\u0001\u0000\u0000\u0000"+ + "\u0307\u0306\u0001\u0000\u0000\u0000\u0308\u009c\u0001\u0000\u0000\u0000"+ + "\u0309\u030c\u0003\u009fO\u0000\u030a\u030c\u0003\u00abU\u0000\u030b\u0309"+ + "\u0001\u0000\u0000\u0000\u030b\u030a\u0001\u0000\u0000\u0000\u030c\u009e"+ + "\u0001\u0000\u0000\u0000\u030d\u030e\u0003s9\u0000\u030e\u0310\u0005."+ + "\u0000\u0000\u030f\u0311\u0003s9\u0000\u0310\u030f\u0001\u0000\u0000\u0000"+ + "\u0310\u0311\u0001\u0000\u0000\u0000\u0311\u0313\u0001\u0000\u0000\u0000"+ + "\u0312\u0314\u0003\u00a1P\u0000\u0313\u0312\u0001\u0000\u0000\u0000\u0313"+ + "\u0314\u0001\u0000\u0000\u0000\u0314\u0316\u0001\u0000\u0000\u0000\u0315"+ + "\u0317\u0003\u00a9T\u0000\u0316\u0315\u0001\u0000\u0000\u0000\u0316\u0317"+ + "\u0001\u0000\u0000\u0000\u0317\u0329\u0001\u0000\u0000\u0000\u0318\u0319"+ + "\u0005.\u0000\u0000\u0319\u031b\u0003s9\u0000\u031a\u031c\u0003\u00a1"+ + "P\u0000\u031b\u031a\u0001\u0000\u0000\u0000\u031b\u031c\u0001\u0000\u0000"+ + "\u0000\u031c\u031e\u0001\u0000\u0000\u0000\u031d\u031f\u0003\u00a9T\u0000"+ + "\u031e\u031d\u0001\u0000\u0000\u0000\u031e\u031f\u0001\u0000\u0000\u0000"+ + "\u031f\u0329\u0001\u0000\u0000\u0000\u0320\u0321\u0003s9\u0000\u0321\u0323"+ + "\u0003\u00a1P\u0000\u0322\u0324\u0003\u00a9T\u0000\u0323\u0322\u0001\u0000"+ + "\u0000\u0000\u0323\u0324\u0001\u0000\u0000\u0000\u0324\u0329\u0001\u0000"+ + "\u0000\u0000\u0325\u0326\u0003s9\u0000\u0326\u0327\u0003\u00a9T\u0000"+ + "\u0327\u0329\u0001\u0000\u0000\u0000\u0328\u030d\u0001\u0000\u0000\u0000"+ + "\u0328\u0318\u0001\u0000\u0000\u0000\u0328\u0320\u0001\u0000\u0000\u0000"+ + "\u0328\u0325\u0001\u0000\u0000\u0000\u0329\u00a0\u0001\u0000\u0000\u0000"+ + "\u032a\u032b\u0003\u00a3Q\u0000\u032b\u032c\u0003\u00a5R\u0000\u032c\u00a2"+ + "\u0001\u0000\u0000\u0000\u032d\u032e\u0007\u0007\u0000\u0000\u032e\u00a4"+ + "\u0001\u0000\u0000\u0000\u032f\u0331\u0003\u00a7S\u0000\u0330\u032f\u0001"+ + "\u0000\u0000\u0000\u0330\u0331\u0001\u0000\u0000\u0000\u0331\u0332\u0001"+ + "\u0000\u0000\u0000\u0332\u0333\u0003s9\u0000\u0333\u00a6\u0001\u0000\u0000"+ + "\u0000\u0334\u0335\u0007\b\u0000\u0000\u0335\u00a8\u0001\u0000\u0000\u0000"+ + "\u0336\u0337\u0007\t\u0000\u0000\u0337\u00aa\u0001\u0000\u0000\u0000\u0338"+ + "\u0339\u0003\u00adV\u0000\u0339\u033b\u0003\u00afW\u0000\u033a\u033c\u0003"+ + "\u00a9T\u0000\u033b\u033a\u0001\u0000\u0000\u0000\u033b\u033c\u0001\u0000"+ + "\u0000\u0000\u033c\u00ac\u0001\u0000\u0000\u0000\u033d\u033f\u0003\u007f"+ + "?\u0000\u033e\u0340\u0005.\u0000\u0000\u033f\u033e\u0001\u0000\u0000\u0000"+ + "\u033f\u0340\u0001\u0000\u0000\u0000\u0340\u0349\u0001\u0000\u0000\u0000"+ + "\u0341\u0342\u00050\u0000\u0000\u0342\u0344\u0007\u0002\u0000\u0000\u0343"+ + "\u0345\u0003\u0081@\u0000\u0344\u0343\u0001\u0000\u0000\u0000\u0344\u0345"+ + "\u0001\u0000\u0000\u0000\u0345\u0346\u0001\u0000\u0000\u0000\u0346\u0347"+ + "\u0005.\u0000\u0000\u0347\u0349\u0003\u0081@\u0000\u0348\u033d\u0001\u0000"+ + "\u0000\u0000\u0348\u0341\u0001\u0000\u0000\u0000\u0349\u00ae\u0001\u0000"+ + "\u0000\u0000\u034a\u034b\u0003\u00b1X\u0000\u034b\u034c\u0003\u00a5R\u0000"+ + "\u034c\u00b0\u0001\u0000\u0000\u0000\u034d\u034e\u0007\n\u0000\u0000\u034e"+ + "\u00b2\u0001\u0000\u0000\u0000\u034f\u0350\u0005t\u0000\u0000\u0350\u0351"+ + "\u0005r\u0000\u0000\u0351\u0352\u0005u\u0000\u0000\u0352\u0359\u0005e"+ + "\u0000\u0000\u0353\u0354\u0005f\u0000\u0000\u0354\u0355\u0005a\u0000\u0000"+ + "\u0355\u0356\u0005l\u0000\u0000\u0356\u0357\u0005s\u0000\u0000\u0357\u0359"+ + "\u0005e\u0000\u0000\u0358\u034f\u0001\u0000\u0000\u0000\u0358\u0353\u0001"+ + "\u0000\u0000\u0000\u0359\u00b4\u0001\u0000\u0000\u0000\u035a\u035b\u0005"+ + "\'\u0000\u0000\u035b\u035c\u0003\u00b7[\u0000\u035c\u035d\u0005\'\u0000"+ + "\u0000\u035d\u0363\u0001\u0000\u0000\u0000\u035e\u035f\u0005\'\u0000\u0000"+ + "\u035f\u0360\u0003\u00bf_\u0000\u0360\u0361\u0005\'\u0000\u0000\u0361"+ + "\u0363\u0001\u0000\u0000\u0000\u0362\u035a\u0001\u0000\u0000\u0000\u0362"+ + "\u035e\u0001\u0000\u0000\u0000\u0363\u00b6\u0001\u0000\u0000\u0000\u0364"+ + "\u0365\b\u000b\u0000\u0000\u0365\u00b8\u0001\u0000\u0000\u0000\u0366\u0368"+ + "\u0005\"\u0000\u0000\u0367\u0369\u0003\u00bb]\u0000\u0368\u0367\u0001"+ + "\u0000\u0000\u0000\u0368\u0369\u0001\u0000\u0000\u0000\u0369\u036a\u0001"+ + "\u0000\u0000\u0000\u036a\u036b\u0005\"\u0000\u0000\u036b\u00ba\u0001\u0000"+ + "\u0000\u0000\u036c\u036e\u0003\u00bd^\u0000\u036d\u036c\u0001\u0000\u0000"+ + "\u0000\u036e\u036f\u0001\u0000\u0000\u0000\u036f\u036d\u0001\u0000\u0000"+ + "\u0000\u036f\u0370\u0001\u0000\u0000\u0000\u0370\u00bc\u0001\u0000\u0000"+ + "\u0000\u0371\u0374\b\f\u0000\u0000\u0372\u0374\u0003\u00bf_\u0000\u0373"+ + "\u0371\u0001\u0000\u0000\u0000\u0373\u0372\u0001\u0000\u0000\u0000\u0374"+ + "\u00be\u0001\u0000\u0000\u0000\u0375\u037b\u0005\\\u0000\u0000\u0376\u0377"+ + "\u0005u\u0000\u0000\u0377\u0378\u00050\u0000\u0000\u0378\u0379\u00050"+ + "\u0000\u0000\u0379\u037a\u00055\u0000\u0000\u037a\u037c\u0005c\u0000\u0000"+ + "\u037b\u0376\u0001\u0000\u0000\u0000\u037b\u037c\u0001\u0000\u0000\u0000"+ + "\u037c\u037d\u0001\u0000\u0000\u0000\u037d\u0381\u0007\r\u0000\u0000\u037e"+ + "\u0381\u0003\u00c1`\u0000\u037f\u0381\u0003\u00c5b\u0000\u0380\u0375\u0001"+ + "\u0000\u0000\u0000\u0380\u037e\u0001\u0000\u0000\u0000\u0380\u037f\u0001"+ + "\u0000\u0000\u0000\u0381\u00c0\u0001\u0000\u0000\u0000\u0382\u0388\u0005"+ + "\\\u0000\u0000\u0383\u0384\u0005u\u0000\u0000\u0384\u0385\u00050\u0000"+ + "\u0000\u0385\u0386\u00050\u0000\u0000\u0386\u0387\u00055\u0000\u0000\u0387"+ + "\u0389\u0005c\u0000\u0000\u0388\u0383\u0001\u0000\u0000\u0000\u0388\u0389"+ + "\u0001\u0000\u0000\u0000\u0389\u038a\u0001\u0000\u0000\u0000\u038a\u03a3"+ + "\u0003\u008dF\u0000\u038b\u0391\u0005\\\u0000\u0000\u038c\u038d\u0005"+ + "u\u0000\u0000\u038d\u038e\u00050\u0000\u0000\u038e\u038f\u00050\u0000"+ + "\u0000\u038f\u0390\u00055\u0000\u0000\u0390\u0392\u0005c\u0000\u0000\u0391"+ + "\u038c\u0001\u0000\u0000\u0000\u0391\u0392\u0001\u0000\u0000\u0000\u0392"+ + "\u0393\u0001\u0000\u0000\u0000\u0393\u0394\u0003\u008dF\u0000\u0394\u0395"+ + "\u0003\u008dF\u0000\u0395\u03a3\u0001\u0000\u0000\u0000\u0396\u039c\u0005"+ + "\\\u0000\u0000\u0397\u0398\u0005u\u0000\u0000\u0398\u0399\u00050\u0000"+ + "\u0000\u0399\u039a\u00050\u0000\u0000\u039a\u039b\u00055\u0000\u0000\u039b"+ + "\u039d\u0005c\u0000\u0000\u039c\u0397\u0001\u0000\u0000\u0000\u039c\u039d"+ + "\u0001\u0000\u0000\u0000\u039d\u039e\u0001\u0000\u0000\u0000\u039e\u039f"+ + "\u0003\u00c3a\u0000\u039f\u03a0\u0003\u008dF\u0000\u03a0\u03a1\u0003\u008d"+ + "F\u0000\u03a1\u03a3\u0001\u0000\u0000\u0000\u03a2\u0382\u0001\u0000\u0000"+ + "\u0000\u03a2\u038b\u0001\u0000\u0000\u0000\u03a2\u0396\u0001\u0000\u0000"+ + "\u0000\u03a3\u00c2\u0001\u0000\u0000\u0000\u03a4\u03a5\u0007\u000e\u0000"+ + "\u0000\u03a5\u00c4\u0001\u0000\u0000\u0000\u03a6\u03a8\u0005\\\u0000\u0000"+ + "\u03a7\u03a9\u0005u\u0000\u0000\u03a8\u03a7\u0001\u0000\u0000\u0000\u03a9"+ + "\u03aa\u0001\u0000\u0000\u0000\u03aa\u03a8\u0001\u0000\u0000\u0000\u03aa"+ + "\u03ab\u0001\u0000\u0000\u0000\u03ab\u03ac\u0001\u0000\u0000\u0000\u03ac"+ + "\u03ad\u0003\u0083A\u0000\u03ad\u03ae\u0003\u0083A\u0000\u03ae\u03af\u0003"+ + "\u0083A\u0000\u03af\u03b0\u0003\u0083A\u0000\u03b0\u00c6\u0001\u0000\u0000"+ + "\u0000\u03b1\u03b2\u0005n\u0000\u0000\u03b2\u03b3\u0005u\u0000\u0000\u03b3"+ + "\u03b4\u0005l\u0000\u0000\u03b4\u03b5\u0005l\u0000\u0000\u03b5\u00c8\u0001"+ + "\u0000\u0000\u0000\u03b6\u03b7\u0005(\u0000\u0000\u03b7\u00ca\u0001\u0000"+ + "\u0000\u0000\u03b8\u03b9\u0005)\u0000\u0000\u03b9\u00cc\u0001\u0000\u0000"+ + "\u0000\u03ba\u03bb\u0005{\u0000\u0000\u03bb\u00ce\u0001\u0000\u0000\u0000"+ + "\u03bc\u03bd\u0005}\u0000\u0000\u03bd\u00d0\u0001\u0000\u0000\u0000\u03be"+ + "\u03bf\u0005[\u0000\u0000\u03bf\u00d2\u0001\u0000\u0000\u0000\u03c0\u03c1"+ + "\u0005]\u0000\u0000\u03c1\u00d4\u0001\u0000\u0000\u0000\u03c2\u03c3\u0005"+ + ";\u0000\u0000\u03c3\u00d6\u0001\u0000\u0000\u0000\u03c4\u03c5\u0005,\u0000"+ + "\u0000\u03c5\u00d8\u0001\u0000\u0000\u0000\u03c6\u03c7\u0005.\u0000\u0000"+ + "\u03c7\u00da\u0001\u0000\u0000\u0000\u03c8\u03c9\u0005=\u0000\u0000\u03c9"+ + "\u00dc\u0001\u0000\u0000\u0000\u03ca\u03cb\u0005>\u0000\u0000\u03cb\u00de"+ + "\u0001\u0000\u0000\u0000\u03cc\u03cd\u0005<\u0000\u0000\u03cd\u00e0\u0001"+ + "\u0000\u0000\u0000\u03ce\u03cf\u0005!\u0000\u0000\u03cf\u00e2\u0001\u0000"+ + "\u0000\u0000\u03d0\u03d1\u0005~\u0000\u0000\u03d1\u00e4\u0001\u0000\u0000"+ + "\u0000\u03d2\u03d3\u0005?\u0000\u0000\u03d3\u00e6\u0001\u0000\u0000\u0000"+ + "\u03d4\u03d5\u0005:\u0000\u0000\u03d5\u00e8\u0001\u0000\u0000\u0000\u03d6"+ + "\u03d7\u0005=\u0000\u0000\u03d7\u03d8\u0005=\u0000\u0000\u03d8\u00ea\u0001"+ + "\u0000\u0000\u0000\u03d9\u03da\u0005<\u0000\u0000\u03da\u03db\u0005=\u0000"+ + "\u0000\u03db\u00ec\u0001\u0000\u0000\u0000\u03dc\u03dd\u0005>\u0000\u0000"+ + "\u03dd\u03de\u0005=\u0000\u0000\u03de\u00ee\u0001\u0000\u0000\u0000\u03df"+ + "\u03e0\u0005!\u0000\u0000\u03e0\u03e1\u0005=\u0000\u0000\u03e1\u00f0\u0001"+ + "\u0000\u0000\u0000\u03e2\u03e3\u0005&\u0000\u0000\u03e3\u03e4\u0005&\u0000"+ + "\u0000\u03e4\u00f2\u0001\u0000\u0000\u0000\u03e5\u03e6\u0005|\u0000\u0000"+ + "\u03e6\u03e7\u0005|\u0000\u0000\u03e7\u00f4\u0001\u0000\u0000\u0000\u03e8"+ + "\u03e9\u0005+\u0000\u0000\u03e9\u03ea\u0005+\u0000\u0000\u03ea\u00f6\u0001"+ + "\u0000\u0000\u0000\u03eb\u03ec\u0005-\u0000\u0000\u03ec\u03ed\u0005-\u0000"+ + "\u0000\u03ed\u00f8\u0001\u0000\u0000\u0000\u03ee\u03ef\u0005+\u0000\u0000"+ + "\u03ef\u00fa\u0001\u0000\u0000\u0000\u03f0\u03f1\u0005-\u0000\u0000\u03f1"+ + "\u00fc\u0001\u0000\u0000\u0000\u03f2\u03f3\u0005*\u0000\u0000\u03f3\u00fe"+ + "\u0001\u0000\u0000\u0000\u03f4\u03f5\u0005/\u0000\u0000\u03f5\u0100\u0001"+ + "\u0000\u0000\u0000\u03f6\u03f7\u0005&\u0000\u0000\u03f7\u0102\u0001\u0000"+ + "\u0000\u0000\u03f8\u03f9\u0005|\u0000\u0000\u03f9\u0104\u0001\u0000\u0000"+ + "\u0000\u03fa\u03fb\u0005^\u0000\u0000\u03fb\u0106\u0001\u0000\u0000\u0000"+ + "\u03fc\u03fd\u0005%\u0000\u0000\u03fd\u0108\u0001\u0000\u0000\u0000\u03fe"+ + "\u03ff\u0005-\u0000\u0000\u03ff\u0400\u0005>\u0000\u0000\u0400\u010a\u0001"+ + "\u0000\u0000\u0000\u0401\u0402\u0005:\u0000\u0000\u0402\u0403\u0005:\u0000"+ + "\u0000\u0403\u010c\u0001\u0000\u0000\u0000\u0404\u0405\u0005+\u0000\u0000"+ + "\u0405\u0406\u0005=\u0000\u0000\u0406\u010e\u0001\u0000\u0000\u0000\u0407"+ + "\u0408\u0005-\u0000\u0000\u0408\u0409\u0005=\u0000\u0000\u0409\u0110\u0001"+ + "\u0000\u0000\u0000\u040a\u040b\u0005*\u0000\u0000\u040b\u040c\u0005=\u0000"+ + "\u0000\u040c\u0112\u0001\u0000\u0000\u0000\u040d\u040e\u0005/\u0000\u0000"+ + "\u040e\u040f\u0005=\u0000\u0000\u040f\u0114\u0001\u0000\u0000\u0000\u0410"+ + "\u0411\u0005&\u0000\u0000\u0411\u0412\u0005=\u0000\u0000\u0412\u0116\u0001"+ + "\u0000\u0000\u0000\u0413\u0414\u0005|\u0000\u0000\u0414\u0415\u0005=\u0000"+ + "\u0000\u0415\u0118\u0001\u0000\u0000\u0000\u0416\u0417\u0005^\u0000\u0000"+ + "\u0417\u0418\u0005=\u0000\u0000\u0418\u011a\u0001\u0000\u0000\u0000\u0419"+ + "\u041a\u0005%\u0000\u0000\u041a\u041b\u0005=\u0000\u0000\u041b\u011c\u0001"+ + "\u0000\u0000\u0000\u041c\u041d\u0005<\u0000\u0000\u041d\u041e\u0005<\u0000"+ + "\u0000\u041e\u041f\u0005=\u0000\u0000\u041f\u011e\u0001\u0000\u0000\u0000"+ + "\u0420\u0421\u0005>\u0000\u0000\u0421\u0422\u0005>\u0000\u0000\u0422\u0423"+ + "\u0005=\u0000\u0000\u0423\u0120\u0001\u0000\u0000\u0000\u0424\u0425\u0005"+ + ">\u0000\u0000\u0425\u0426\u0005>\u0000\u0000\u0426\u0427\u0005>\u0000"+ + "\u0000\u0427\u0428\u0005=\u0000\u0000\u0428\u0122\u0001\u0000\u0000\u0000"+ + "\u0429\u042d\u0003\u0125\u0092\u0000\u042a\u042c\u0003\u0127\u0093\u0000"+ + "\u042b\u042a\u0001\u0000\u0000\u0000\u042c\u042f\u0001\u0000\u0000\u0000"+ + "\u042d\u042b\u0001\u0000\u0000\u0000\u042d\u042e\u0001\u0000\u0000\u0000"+ + "\u042e\u0124\u0001\u0000\u0000\u0000\u042f\u042d\u0001\u0000\u0000\u0000"+ + "\u0430\u0432\u0007\u000f\u0000\u0000\u0431\u0430\u0001\u0000\u0000\u0000"+ + "\u0432\u0126\u0001\u0000\u0000\u0000\u0433\u0436\u0003\u0125\u0092\u0000"+ + "\u0434\u0436\u0007\u0010\u0000\u0000\u0435\u0433\u0001\u0000\u0000\u0000"+ + "\u0435\u0434\u0001\u0000\u0000\u0000\u0436\u0128\u0001\u0000\u0000\u0000"+ + "\u0437\u0438\u0005@\u0000\u0000\u0438\u012a\u0001\u0000\u0000\u0000\u0439"+ + "\u043a\u0005.\u0000\u0000\u043a\u043b\u0005.\u0000\u0000\u043b\u043c\u0005"+ + ".\u0000\u0000\u043c\u012c\u0001\u0000\u0000\u0000\u043d\u043f\u0007\u0011"+ + "\u0000\u0000\u043e\u043d\u0001\u0000\u0000\u0000\u043f\u0440\u0001\u0000"+ + "\u0000\u0000\u0440\u043e\u0001\u0000\u0000\u0000\u0440\u0441\u0001\u0000"+ + "\u0000\u0000\u0441\u0442\u0001\u0000\u0000\u0000\u0442\u0443\u0006\u0096"+ + "\u0000\u0000\u0443\u012e\u0001\u0000\u0000\u0000\u0444\u0445\u0005/\u0000"+ + "\u0000\u0445\u0446\u0005*\u0000\u0000\u0446\u044a\u0001\u0000\u0000\u0000"+ + "\u0447\u0449\t\u0000\u0000\u0000\u0448\u0447\u0001\u0000\u0000\u0000\u0449"+ + "\u044c\u0001\u0000\u0000\u0000\u044a\u044b\u0001\u0000\u0000\u0000\u044a"+ + "\u0448\u0001\u0000\u0000\u0000\u044b\u044d\u0001\u0000\u0000\u0000\u044c"+ + "\u044a\u0001\u0000\u0000\u0000\u044d\u044e\u0005*\u0000\u0000\u044e\u044f"+ + "\u0005/\u0000\u0000\u044f\u0450\u0001\u0000\u0000\u0000\u0450\u0451\u0006"+ + "\u0097\u0000\u0000\u0451\u0130\u0001\u0000\u0000\u0000\u0452\u0453\u0005"+ + "/\u0000\u0000\u0453\u0454\u0005/\u0000\u0000\u0454\u0458\u0001\u0000\u0000"+ + "\u0000\u0455\u0457\b\u0012\u0000\u0000\u0456\u0455\u0001\u0000\u0000\u0000"+ + "\u0457\u045a\u0001\u0000\u0000\u0000\u0458\u0456\u0001\u0000\u0000\u0000"+ + "\u0458\u0459\u0001\u0000\u0000\u0000\u0459\u045b\u0001\u0000\u0000\u0000"+ + "\u045a\u0458\u0001\u0000\u0000\u0000\u045b\u045c\u0006\u0098\u0000\u0000"+ + "\u045c\u0132\u0001\u0000\u0000\u0000;\u0000\u028a\u028e\u0292\u0296\u029a"+ + "\u02a1\u02a6\u02a8\u02ac\u02af\u02b3\u02ba\u02be\u02c3\u02cb\u02ce\u02d5"+ + "\u02d9\u02dd\u02e3\u02e6\u02ed\u02f1\u02f9\u02fc\u0303\u0307\u030b\u0310"+ + "\u0313\u0316\u031b\u031e\u0323\u0328\u0330\u033b\u033f\u0344\u0348\u0358"+ + "\u0362\u0368\u036f\u0373\u037b\u0380\u0388\u0391\u039c\u03a2\u03aa\u042d"+ + "\u0431\u0435\u0440\u044a\u0458\u0001\u0006\u0000\u0000"; + 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/Assignment-2/Java-8/Java8Lexer.tokens b/Assignment-2/Java-8/Java8Lexer.tokens new file mode 100644 index 0000000..52ef1ee --- /dev/null +++ b/Assignment-2/Java-8/Java8Lexer.tokens @@ -0,0 +1,205 @@ +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +IntegerLiteral=51 +FloatingPointLiteral=52 +BooleanLiteral=53 +CharacterLiteral=54 +StringLiteral=55 +NullLiteral=56 +LPAREN=57 +RPAREN=58 +LBRACE=59 +RBRACE=60 +LBRACK=61 +RBRACK=62 +SEMI=63 +COMMA=64 +DOT=65 +ASSIGN=66 +GT=67 +LT=68 +BANG=69 +TILDE=70 +QUESTION=71 +COLON=72 +EQUAL=73 +LE=74 +GE=75 +NOTEQUAL=76 +AND=77 +OR=78 +INC=79 +DEC=80 +ADD=81 +SUB=82 +MUL=83 +DIV=84 +BITAND=85 +BITOR=86 +CARET=87 +MOD=88 +ARROW=89 +COLONCOLON=90 +ADD_ASSIGN=91 +SUB_ASSIGN=92 +MUL_ASSIGN=93 +DIV_ASSIGN=94 +AND_ASSIGN=95 +OR_ASSIGN=96 +XOR_ASSIGN=97 +MOD_ASSIGN=98 +LSHIFT_ASSIGN=99 +RSHIFT_ASSIGN=100 +URSHIFT_ASSIGN=101 +Identifier=102 +AT=103 +ELLIPSIS=104 +WS=105 +COMMENT=106 +LINE_COMMENT=107 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=56 +'('=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 +'@'=103 +'...'=104 diff --git a/Assignment-2/Java-8/Java8Parser$AdditionalBoundContext.class b/Assignment-2/Java-8/Java8Parser$AdditionalBoundContext.class new file mode 100644 index 0000000000000000000000000000000000000000..d57efe72655e0c0db6cfd62049be86f0753d6802 GIT binary patch literal 1233 zcma)5-A~g{6#t!dw)-eBHoy;12Ta&HSa~qfWW)q!j5T91GI=lCl@vxx+K$XW#s9$v zebMNH!B_t%N+8{{XOqEe#1m_LY5ZKYeZcf$%d(;+6(g zhlUhkCHASb)9pH;HB5Zpn!X<2!EvwS>{3FwL!=7)RKQ{fo z8#<@L41FQYw(w6K255O*QP+?m6yppQBl_>`j%dF>6C-@7NY^oiX~Hx!z3KNZKM}Ue z&0`jC_H6gaZ1n6PsNcjt^cTynXOP3JhP;jf<_K#OWsjv1)NRLg!e`R$WUFI2Eb2hR z0-+Fd+jN3ZxWdn39(Q!y#XZ8DkQKOAXu^8A8B4sO5%tP}gj&*ZUqThczzN5Y)LpB+ z(|S%Y%KzObLbAdABFr=$SG4-4hr(~$hdsWTa^f8$lo&OxbW%g>1bx&;%k7E*K`B=( zLOSv;8${T;p|a5sMdfYtI9*ndowJnv(C(b<*=HkZDd~TRmf83Een-4;By=vOuXfDC z!vowBLHN=Oc$Rg`<(5Q~Bm%<1wE|wv{M;mGSms&H@t*~#AUwcBUW@!zgu*8vW#rx} zU!Z*AGja4V4yue>!78sszFQqdXN`QCqq7%CUr$)(P#)S?g2IWKQC<3qna_M2qGym` ziV{@y5#N*`SIMx*yVRrP3Lme6rDUjUyslxLR~h((0T=@L>QBsnz*O}D^Ts#aPC$|* zA`3&33T9OUWxi#rvz%V}7s%o`$R>l-{(>klB9y^;e?FhzSFYGlM8h-ph7FDqTz3JFF zEfEDXj5m8snZd~G|J6Ds4<&}aCGwMDsA@TUwbk6@Ud`OJX(ww&0>Pjk(vP;ce-;L1 zad}xDzDF>kLnX@k<1&L5#;xKsc$+r!dWE4suvg}Y;cAcJ1(HGFYLuA$A(5>N1M9-9 zZ?Bj;;pr06+>Tmu-EDbwe$SH9>8?r5%ZyV-SGh0lyS|{#Dh^FO2t4;0CXca~VWOu& zxIot+O&1$TfZ;qQ={ZGjm!QxuAXUgJ%1fNugYukS84*Af`c(c%&x-_%5aJy|{4n7Y zL8mbj5~jimi9-4j5mJZIp9wd66ngC_^cOF7UMzB%}Y0XkyIj(E;hbnu%j{d)O7HF>k literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AmbiguousNameContext.class b/Assignment-2/Java-8/Java8Parser$AmbiguousNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..d82a775d4a2c9a70738a84c5bef9ee5b795a6030 GIT binary patch literal 1210 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AnnotationTypeElementDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$AnnotationTypeElementDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7838dded27bda83d35f7bfbedcb490bc7e79823e GIT binary patch literal 2238 zcma)8TW=dh7(HXB*~D>b$0ZFkshyIvwVk%xD^2T=5^|wNPE;i(@7s71ZM)vB*1J{s zDf|Z>;H3y2PA08H_^HFqXwQG6FZEzH7Gac!p;> z0btXTZE1TO^1w3OU^fgQaPmlcyS~+nDX>y*JYp5PW!Ojhx@B}awR)xDxJSBSdzPy| zy{Wst?U`+P_jkP1~?`oR+L<$O~K@ z+RV1oG7nAZM#v~+aSCq;Nj$u4AZQ6*cH$EG(7DlqQ%ge)*$uJk32 zYrG~fvQAa-QX8f%cl`E4={Ajr7I!lB7P|{XAW&tXM7{?FM#38p)^;~{_^}&)jO=Z0 z*9FcRN$;j7HGu-NJW{XYrEJ*Go_S;&p6{}ztpSIXzWx%~>BaA{y2`F^mHA?ZUP&BD zwptXez-)}yh?E&T+lq)+y^j7=86 z>GU(4c#iaE{3)=+byOV{zvFrdm$@pydf;W|=5-6dMps8%iHo?$9p_RqM%!xU}?pj%vf?4-C)c5<@;JGnUU z7rMTK+YvxW=QL{~ozro^uXJ6;ok74%7cdhC{6<%f@CYCs^szMe1>X9cpWVyKuzD0< zV6^xHp5%oBe|aD|k0_yv+cr*}~E{D1Cy-rROMBzr?u|RFYJn zh;EWUF;)Bvt12kO6yf)V1vx($nIuZ<-x6X<4Y|9Bk9_Z*}81Fck zsR-dqN4mbK`a<$knMM-2j+B9Zq!|{vgXWwR$AgRXy9COxT_bo8nVI!=3~w5w#s42&z8Nq*|eYgE!s zdj_bWSh_;kLLbI<`3Arwm%LWHaakGk2aj+*knpY(qc>R z_|0ISzjhUMwj=6!HLv7slZWz+A4+m&3+iArygX#cU1ZuG^Pc*HNt)*@eV%|0hWjYc zIze~S(C7-tn0Zb6h8t(lzR)dogw~{bRIq5BB4DdvA}&ao*=Z`s{EuEF+)Nu?h|#*) z*A4ub!1Qgz)XIxSvbtFw`;MWnZ69eQ$j1_rg=K<1z-(MFO1m^sJNJcM{yd;vf3la_G ZNM#O>qMc!$_B`pT>@E7^DbEY&{|7*LL{b0% literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AnnotationTypeMemberDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$AnnotationTypeMemberDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..8e282e7f1e8ea49fdfe3792064a396b1c37fb01d GIT binary patch literal 1970 zcma)6OHUI~7(KTGoze#_4?!tbu!wyigMfk-Ap|kj6k?=dKa?vOXm82Pl+>7*7^5bd z=-U6_LN^*+7~J}!jNi-@Y-cF2nXfZF=X|eo@1MUve*sv=k_;b1=#hG$&OcUlgX=On z7-pJ2j4caMHC0oqisG|q=Faylw{Jhb$uyMi+t%)9oeJcx8+0 zUIm8k9d16Um3c#wVIfu6rP`FTDt45WvT7K)e7aE8cNA5aWnDR#RrH!LwF+09@|)N> z8DWO;<~m5%Fp25SEu)(u*@CsQodk?ATyF;EseS#aTH;=?HIv>j`q0l1px%nrJuVm~ zQu%gWm^$Z5k?R#rsO9zQHqQkyfI%4-!?=VY>gRmTGx!%Yp_z+Tw(|}wpWc))%+S}= zUO_WVF1Q{-9EmWlV1!|e48ZkPUwD?vFqbMc3Auda!8dlEOK)1Ku7;7cQYCp^GtbO4 zqMqSVtC;jD)wFeWj-g|P*1!-gXo9cTEbA84tulS-D|zk2kZ~ny?>W+r(J5+i8F|ai zcOj1E#L%yu;5>$`OW+iLTHS4|uH~JoPjr^okPP9*G0lr@UT2U}X;SF2O<|oshN(7| zv&HO#S|pzzS<A5ZN%*(%zc7-xzMdTD+qc+^E*{5`Ums(y=B>P43d&KqqUR8|K5R zVNzvzL0+{l3U1IWTb)c}KV=ITrE6kWiL!>#szeo++g1=^}(2LdZ>cPS6apUP8nnMBIcI z1f9SQFCpp>qHe-Vf=)td5Jnn31TwKDBJ{Y?uLwsMTa&y*&B>YU@ONDJdfaUgKI-;0 z{E0UNox;rqAx_a6krWf3kHOAp-qIh_m}vm#NPr~JoBfUWCq%M`h-ZG_vJX}gpFL71 z$vgBU-ecAh1?wUDt+PZ%y&@k-@RO+h0Ki7_TFaBUXaE!n*#{VVmJzLam=<=X^QdEeVoUaaV#QdDj&FG=?}obqhmU3#^l2ph7DlPt;6{ zZ**GQ+^!qjO^U=e&4y)&j!ozJKxO$%Zvju1mP-s%Qa}F)!8C@!%FFfjRq3Gq=E~&VC(+!4>)j-bw}7Fol+f}E~EDzGy0l3!xa z3FM*(xmtdrAWP#uLeS{j1icx(m3%sUgu%~rWXRDoBE!WktE>D8ze4UExt#jXi#Jh54{3eC?_9C;n%0r?B3Yh^vfg6dzp)bAjeG?ej@V` zLxp2x^4~BKf@BG~>*}#^q>3M~K+!N*ipn4V4`ezBViL&SKaen76EC O;y{u9)Md{l#Qp+XxOwUT literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ArrayAccessContext.class b/Assignment-2/Java-8/Java8Parser$ArrayAccessContext.class new file mode 100644 index 0000000000000000000000000000000000000000..427b963e497e0c16e4b2704fbadd850603279058 GIT binary patch literal 2491 zcma)8U2hXt5IxrpUdM3~e?Z$b0YV(WA1$Wk!=W~AgUg4(SSX2jMN7Di7VLGjyQbl% z^gr~WeM!|mROxH~OI1~>R8^G_=dL&SvR<0_VaMK`nKNhR-0}YY`j=k;tmC19n83_^ z^QF1=$aGxk7?=_`r`=e+y|?Q~*R=+A*X+yI!1m;xmqG%Dfn*xfNC}+L1J)hKe6_y4 z&7i(Qlj-Q?!PBkj97jNMQb5vMj7H$#$Yp10M@q(?K3NR^N19bq8Jf zt>4rqy>INn6LX@!29^Y_92FW7n8F#HHL#q9<3!CLEM*-+k7HA*AGYU@6ptD~Kvp;UIKsq?~ZTp$r6Nnc}Z7RW+vszvPm)~<( z{6YF#Zi}nu@K8|H0<)W*x&7jyxf{qXsiZy1mf9Q)oo#u?QmHfAz%D5{a@lpI>)ji; z9xH3xJZ1itmE1N5u}7JSO< zCH^WP&Tqg>ITw%bK}`)m=%$7e zFkc)oUksttrs&H5AT1!yRvG2W(oZ=3BfpO3ol+gF8A#NUywk*&LBJBN;xU!Q!S`>y zeRb5P`Q$6U?2HCoV+K`AuJRiS-(j|LfI|6aoR2}F#C%naQ25eNo5d~Or2w-GZylAS wG?^sBB-wG2IKK8#ZsU$`1@6+8aYA9>9^a-^&28E|?S0w>+6T0Yv>i;p0ikYdlK=n! literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ArrayAccess_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$ArrayAccess_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9f88bc75588a151c4fa2191ba7e7c9d72649f6ae GIT binary patch literal 2567 zcmbtWU31e$6g_JPD{&NvZN5T6As?mwfQS}|19l9?g<^1BCdu&9>3Ec|cm#@+S;=4q z{s{k}59K8cJTUOekLvWUtOQ}nhz>7Wd3EnS_v}6Qu0Q?z?md7y?kGqwOy1R>>Z|v4 z;c%f~jNx8jW9hyyc69N)ZMXTex)A#Fj`^swJJ_UG%kJoMx4ym29VhUuVOuWmyJ@7L zC>U2Ufiy!Q7}^Ur%8}u4m%Hmdllzevs`=JqN>wv;tE)9k-Ek_-LdzCiO}AWAXiqO| zqG!3r4%Y^30^Svwh^k@=hZ!a)@}~WSTMk1mPcgi(J=ZX`mf^Ub?X-#vvJB(hB6VBg3`=XLDS|37lj&@+DbHY%$C>l&FGJ z49y@&Ou6EUHHXs*eo%1+XBp0Y+tD(ls)l8_HF-kcT8?Jnfr14({y_5b?779oB<8WC z;zyignB^oR5v>%4<$NpPzZ7lepLV72KnBjMD9FI4c;9fN9T--9f&XvSGyIV+e34U3 zLE`$S!Z6k#J&{6MhQ-^xoh>dl^(~WjQmvco^~ODhEMY#Do$*=1B=QZTYw2!JkYzPw zP>n8BSjRQWpd@=FQVd~xhBQAAI>V(1Q-Lqo!II76#+P>R!Qdzc(H{tFlBV*)>WPQTDoqMRj^1g+!bG`oi* z!(JV-yA%PD&F$gXu<@1;aoKaa;zLLx5`u{22!e>@h8;PXu0)_r*CL2?14LF3L8KN% z#2|=r1VnZwf{5uuta?sY!$f8VL}rGG*knrgSim7k%#~tk?hR&N)9avoX?Y-JfmGR{ zoolH04s*215{_l?@$UocL9t!>QpK8YS*8f`P_w0vn16+-(g(~J-(oQViIVU{GC+BT zOu3I5?UJ4{fvQ$p;_%`kd!E@6Jzueft(-Av{X?q=EJiKIx zp6yv(ZUkN`)@A96u44}K3^Rnh2)qn>XQnK@+j+gKc3bI(^ZhD61(Ew3t5|Gaf> zR`u1z~lZVpz&@{*DAM=qO6?Wxi*5 z<4mZt`JrK9IGf8KVjHxIGE8NLsXDb5HA~a7d8^mG%f*&?w?ik1=GBc_{T4%-knYPN z8FVxC`=+&Hn_f?lW@SX75}n%7madWqML8~!I?mt6AO{&hmeUWzfT&*0AsK zJ%)HL-=JRf=T2^Bf5yhQlE1>YXs;ejFU=Uk+@@!?AFP|ZVdGEBNej@Dn@&%(`E^S| zFDNZ@UJe9p@)mc!8;S_ex?aGW zi1`L9B&C5?Sh&*1?67hlZ_&#bF8W57=qg!G5lf8ZG#M@RaeUb7Ytnl=f+C&iuAl0Zqo)E>mxUBdTCU-GN z?&7ddKagrU!lyK$k3{}s=u^cvx}vazkuL?2FAcLiB~|*`Dh6>%l~yP&e}$7@&}~rf zq|9LHXCz9$&`A~Vg$BzcWgJr}Jo)UIcF-Na(wq0`e_>GQ5+O)m(#7wQ{SePj#Y z;A{+%CFXZk!15bXrQdOtPN@M?WL}>Hk{<>6gFyZqfW+~E&vFgdeaY}4$pVf^4&0zW Xp3>(A$qdPxBo|5EBDqAeiJ89ve_QV+ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ArrayCreationExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ArrayCreationExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c97b067f7044efe07a1d862c250a7a5a76bb9b55 GIT binary patch literal 1947 zcma)6YflqF6g@*LOG^>TLr|UyYH5+h_oMZJMPp5^uSOFSHA@-DLc1li3qk*h|G^LX zMWY{#e)UHg&uj~9wp2`$neEOw=kC4t-1+_I`wsw%STfKd(EZTbwyr&~lq*#nQ5-SQ znSg;Vfpp+#W>G2YU0zAcv+K^iolPZOmrwb+j)+muax{bh*+dT>@ulV;I3x~8mwrShFl_$36cKcC5rS}dL#qxp%X&_ZTv-Y zqB%qbXGQJ^L{hT_ftcT9JskoIZ7k$ZuWJ59%7bA8HM6I=;&R^GRF1uh-xMNz0=m+DlaVioeB!gfEZ0u`K3C+LMuw|K zPdCxs>HZke-9Hfv6H0{6;an@Bw?XI)6P^+}53`k!Y!H%RLYdG7oNpxzGzbG>!b?Ig z;9@Ibs6iMC6J8O@8!SMGFnJ@L8T*Ri&wCY$qk|QC&Fkw8p_g#ENzg=H(`XXEKklI$ z^?b{dE4bQ3UZnyx(4YB*@ek<9{KRd(OS*-2VLa`5S;5Zs|xcWS{U|e)k!do{$;zpidb#~T-Y$?x3jpYz-bT{5dhB+dNmVdV4Rfhih)5XOa zgAw}Oa5uyrgJzZ*4Cz24WhBG=DGmf<7ue9E0sNyh>BBIv;`8)vClEp*1nZfliVT^XwtCoB9 z<~X?9=12Nqq7(++Apn9vzVZWw*BGcAp-}#W(F7DpB9Ny`@&!Z1uP7@}upvsX{0n5P j7vwvE9Q_5+FdMMkz+A91ShVMfw~q+sk*0^?CeptFvK>ga literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ArrayTypeContext.class b/Assignment-2/Java-8/Java8Parser$ArrayTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b166598402f51f7f54cb7e0a5512f67acf05ea12 GIT binary patch literal 1542 zcma)6-A)rh7(LT1-O?Wl1+5B-NQM3&i;99NF(DXZO+_Mv`=yLzvE7o{ErCbz9gLC0 zNJOI;z4D=q-*lICTq<(2-_Fi=&YU@CW`F)V`T}4P4|GHrl26TDbAH7X4i`G24A+$p z`4wR`E!W!RYx_HVsb#x-&rKi(T}M2HUL+Vs)c!>w%zdSop>K=3FWQY0FvCKjwoOYK z4b$E-mKvtxRI0^VOKcgY?KXt5J8Oux?OIK4c&Ze1MMsJur>^+OYC66!9eoUw>STxh zxu}wE@zSiTyU@|kFse37+3TjT%#A>80$B{|7)s#+E;3AX$ z&HAfn=8kVcTw3h0C01K)QRj~>N!_o+G`&q%fFZuj9rsDgaYf-$~hio(5z*Kqd@0q*l7D3P2;ddZ|2e zh=GGZe*zKGe}q`{6SbC5_5s6G<)*d%zBfU$x7p7$F@;-x;~WtX1+wLD$h}6oe2iS_ zBQ8fE7m0LC@)r4uf#@-&B`Med!HxfsTs=+lok)KCA<;0?S>-nFbSlGLswMPvGMlA8 Wv($W#YLe=Gs%ffoR5MiP(fb=G$aS3n literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AssertStatementContext.class b/Assignment-2/Java-8/Java8Parser$AssertStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..6e06835aa0474a00d47746bf1e6e9ac982c8f274 GIT binary patch literal 1535 zcma)5T~8B16g|_HZd;a*7DN#c6fFHf76k=Uf*}otnoDuU zXrlfHAM^#I4+dZTQN}ylwbX8j_F-l_bMCqKo^$8tuW#Q0tmCc%A4Bg0{a9als9QF- zA_$;IK~RN)5W}^$tC@A10HP>#!K>U9*_tVMLokHOT$E~u++>(bB#I34f>Xkz6fM*m$7$({?Y&4E6Zreu9bjf8os)|1JGYn9goqC14 zS2n|RBL9d=*DAVM*0L4dwlm4*NnIEfEpON&BN+x&L=j`?|C@nf)k|<*`AvD+@)Pqg zE+`mLaS@jo;$6G;gfRqH4bu>7QmpPud15lTV$?mwxtzL{`T*U;gFbtC| z-0JX&VK$L(3p~fiOmbIJO{uslsfKvN5FV!Bda<~%Q({OZ{@Z4TK$h$#1M`N-3-#(A zw@Uh6g-#;8WjI5OC>=Y`%wq@_jk2kWx<%+k4`B7LzC6>DS-$#ZAcIlX|94u@KAGV1A)Yz@%F z%3l~H3#MtEp?{O`(-)wmdi*Ewf1*!@>$C>tar`l@am>Q!f_*MH7Cu35C-?~x6zD_J z2};o_GfYzkAML%VSa|FN1E&ag20kTdx>eGYTT&=Bc&}Sc&j>x&4ZYb7{hZMBMB9q- zQ!z>^J^lqlpXsyNZba4?e~DoH6`kC`yc;l1yVNHT#fy(EbW@zybfaOxMJ^MA>@$}B zfzc1>OP^vi^%Y}2$Sgib)Ml19h{oUICY_S@Q3}8HFOo?w$vYx>e@5cRqLXC_x1F8g S4(&0@8=wTsxUd8f8WR literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AssignmentContext.class b/Assignment-2/Java-8/Java8Parser$AssignmentContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1a45419c47ce31139a494ad10272b13341ea22a8 GIT binary patch literal 1391 zcma)6T~8B16g{_FyU=cd7Ew_U`Lx?2i%OzN34{<0H5H8z-WNJHi)EMWPD%fY|G@`+ z(ddK0SD*bOCMG6o)VuAryR!R2r??N8b)!Euy8&Rgv6?4TXK!Cm^-iVlD? z*uqU=3|BOa<0@g8y%TQeBVi_2j$r1(t>6$vea|PD&@kx}42gy%!z6-Mi}a8%o72zm z_33bt5Z`nvg4L8QTWr^l_JzA^?$>xF%l!&k-1eKGcX5X0+c|Bmgrw+nfiT?#?CB6o z(Si$9vMZuNP;z>SFxa%ozZrz(e>6e5BDg}k{M9y_?INUiqh6JfX!+D55$Bf<`PLE!wuL9R98a>clFi*~USZ*JYx`J9$b@DDCJ@HMwJw7=zsCbi z^NSndCkv<`T*nlTH+VJ+g};DQKC38iap4roYo4;LJSP0DwXZzRaAFT2)dHlt0pB=v z4)eW$bPJH~27KpKemxO@!qwG$Vd5Qz-*n_85o0+&kXZZ4sSCIn046y4XNYI;kS%<|*h{1frx?q>$K@FODzWCFTUGubvkv5WmHo*uyzoDgYds|E p3X{Y`5(SIRDz~uIj0A(@4C2imEc3t6*L<5}isK!QX^wX>_!nODRPg`+ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$AssignmentExpressionContext.class b/Assignment-2/Java-8/Java8Parser$AssignmentExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a1bd9433914e57f7dca9a8ecd9952754e081d608 GIT binary patch literal 1284 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 JddN{o{{e2_8qWX# literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$BlockStatementContext.class b/Assignment-2/Java-8/Java8Parser$BlockStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..61c35e73f62e2c04fd3abe60f8a53f92c554c399 GIT binary patch literal 1482 zcma)6-%ry}6#mYNE9?i1;Y0-$2Eu+IMJ17B#6&U1nMsTg-Y?^Z6iRE_JHnfPhtDP^ zCTPS&j6N8A^^Y>1c4c-Y6JG9Vd(Zcs@1F16{{HjhCxAy-)R7>hpNoC5^isHg--q3M{FcQ(z zFg+!0>84S@)eNrTI`4C*rQ6*|R#s|6aMRt};c;u_4WDQ{gBw0kULKgLJCWUDgZ}R_ zVX0K^Dt6Jqs1f>BoGnQhYM8cMZS8GJcio>RLXOAD^CA`zW@BY~n8>UH-suPuCSs_# zqnw@zr>$;p$peB`D%Y7KXsbU)goPfaDOZN`w$4wd=5SjHS+3LEeIZ_l=jr#G+h$9x zIW4y-pPIorBQDMF@Q4%oSEZ+(Ii6x=b(`G|4k|qY%Q(l3&V?y-8`=3j+M{dS@pxx2 z$rm@rzXL!A;U;eJI>B#K(D(^RSMr*6j7ulbKJzON3$ICktN4!BA}5{!q}zaW9Ppk~ zr*Zo%Aln9HH0TVC<^3`7`yhXNpfUkt%XGy*? o$?-oD4Rb-2JD3k5!Qfa#Utqxk|51I-cR8jx-s70%cpn3Q0bek8i|$^KXyX6y zKlq?8HTq!ct3S#(7nTYoXkT{j4)>gyIcJt%zrX(g@E8wN1Q?>v&4KyorRjRyRk6gd zF_qYSV)t5|hA;*1az|8qj^INPK@h5nkcKcK47tSs&qpvUx4C%Lx4ED281j1klu8@6 z>9mciZF*k0FwXRaWgB(N6J=RR(-1?PAwJ8%P?;yF73w{=ZJ3U*U1RXjaQlw1y4)C# zH&vgQ6G*B^X-H#*Ve4uzhG4~VEOEfFqhGaDt#GVjl_5Q)lbnt_+>IiG8yarn7Q+fD z%-vbVNvCbSJ_Wqw$VA|B;aF0wX}B$^(tK!%Ii`4X#!ZHlKBqXtQnh!&$*{WR@WXz$ z$=xHfX;UWLu-c9(`YxUK=a7|ubm^O3J}8sYI+?V1pvhGR&G)1( zB*WeU2ZYOg$B*bVQJNHDh|wyyIxo!E{zxII)0i#N==I$ee`-nU#8iX3r?jOEp+oM8 zXFX3)XElec8?7uSgEF&1U#$G@xeqBjHV?uuBF5j(nO7#1qQMLyJmK1_$$8o z1ANdIjXoHC^+y@+?jlmVMjx12?wot>x#!;RKR$l}u!XXU7(@D@b!gpwWC@Q84RI`~ zNa#?JWLR5x+SnG{8n&b*`ItMh?mCiBB|~z+W!oKchv8buG|LTF462qRN1}RovnnQz zw8y+E1?SZ^7h~J8MoqWJYZ^49Rp>f0IKi+PnHH+rpN#mtUgD1J*z&GlExOdPoSIoa zP?2L;UTCLbdy+d`q>)8I$1+aRJN3oI(LPC8sj-k3Z9}bm;1iwFaoQ&;@To2T>Xt23fVytT7uGH7OxMB9Cv3kID=;d^B|Jw9bn zN@YT%f~Nd1!;QaK7ECAbtxa?KWeqjOkfDiphkMqmS>2@HTF9og+==M&`?gP=Tkz=m zOWG*fj3)Qw1J|P^(M^ZEu8%Cw;~vAxQEz6m#Tsp&Mw2UsB#6H!Od`$ZjH#}^eZ9t6R~{g Az5oCK literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$CastExpressionContext.class b/Assignment-2/Java-8/Java8Parser$CastExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..8c13a647ab47212104aedfff8ee43decea4e6f16 GIT binary patch literal 2445 zcma)8(QX?>6g^`bJ9eBpcIp;zplKai+kv>0Len?|QsYt=$C$+QeG?DSw)Q&OT}SDs z@DDt|OA$Pv^2!TB2nh+P5)u+r1qprtac0-0>)mz1k>;*s1z-yw zBoGmpy{R2(YaPwBq?tkt&m<5}BY_!#v!1Qxx@Osp<3m$gmOeDM^*xEz8(;r#ex-qiGXG`FeFN3XKj|CXAMAwER zqvxr?vuQks=LIs8HLwJV!6KC1vW#rKUv24@&9g4j(VJaM8|?M8z+qE(5oZ!uO5-ff z37ik@WuTS<@eSS3?M)?t@csud?9{CUmIW3(X{ltTAXy&B&m|3ai z!G&wHR=%Z(Dru}JqMSU|Z9h-E)!EupZ*8BzK%D7 zfUFD1`T;-E^$OO4fCU$@;0OFf*Q;1Z#5wU9T2-G!C6~X4(|+d%sBtrb4F~k5CrX6x zS*Co!DO27L{F$zsc*_G&Q3xowX%+l{U+BvJ86H5?No!^CbG+~wAKk8{m<$@fBHs9o zZ{FsQ5Vv!Sv?@X@i$|aQ>+SaVA$P8!KK8sq29en#53Kx)ZG$&ndwZ=`JK!E%*S8v-UC>}vV;&r>XCY+-q}H9TPRh`z8s;+iyUNsGeA3F^3eeN{PLvAos3bk6XZd&__YB;*394#qU z$8fYZR~(CTrOBYL^mWr}t2(8kwzqeXXxG7R}XcfVj{FMIP*Gxqo~L%2|^F(lls3E>$Q&(Or3 zQCFBIP3xcDQ|}mtwjH%~_*i}FRTvi??9!6kX2)vrbxoi%zOoh$XejA@G`Q_-m^M8X zxn_`oO+0{{R3 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$CatchFormalParameterContext.class b/Assignment-2/Java-8/Java8Parser$CatchFormalParameterContext.class new file mode 100644 index 0000000000000000000000000000000000000000..71d409ea3762601af35a9b82fb34e0864cf0af1f GIT binary patch literal 1674 zcma)7+foxj5IvK`+yhBKAtnj}LN0^_5K$%fiYDEt)vzy}}n z1xp_+eD$L&d-ej$CYI!3dUvM#^yxl5o8Nza`~>hEl@NRku~+Juy8c=sro z%fFVJ8n^h+*2z)N$VHG_<$c6-!xMGL96|48u41b_t=MaKS2}C$yGQ)4HM(#VGEE za4(KAj5EyMt{jHomZocBn_)hG+ZI#{M$^*#JcuN*+i@$^p6)deQ-Llx9d1z=<5ZYtwkcmePc!VU_+QQpaeKh3dV`-c`16G-@i4`blg_aCk5Lc?x39z@Jvow-Kn#fk zq1NB;si$@i!%`*-Eqc)D8Fjv^N$8}D;(}}jLwKKe#mi1t5VNXIGh|*#PII61eghb? zgQUN@>RG4g0h%z3Ij5ff(O?DX_Q+ot3{#k=#EO!R|1BarQD5I>%p hS(dS4T834!QwW&Ctzl$1qIH#mYW6stn;c zaoDsqOVgEtR<-QdF&ROG7<}zmhWU8@G(F4YTq$z%Kr>W*qq56063+Kl=+cb~GA`m0 z!)SM{l-G2Bu`YQ|U{XRv#uZ#;m^)i57>2T%p;>F9qO-OypV*c#MeTBUCVIsUZUzv= zH5t>GA=5ZHZFbD0sfZUGkeSX&Ya}v>Z2_N?ab3VicwMtPF+^AEnj?nUc%qBXbX8QuN?#=4=evJ}H ziMet$q(7d7OYPxcSaK2WYGFIH-9jN36LSBIVvt)ymN#~JoxvMVcM{io_-tGzy9V3WgfhzbkQg1KLz^9FvO9dXOh0A;iWeqkPLaf4Gf;Z z`SjPe#dZ5^#MS2RADN^y!>Lbu(1Eakt zgW_(uNQA--jQ0k=YDp~FpqniTQHYSBLc%0Lg@k*77KPF;!2$3RKuV?}Uvc>hy*8`% z3!e0A45jO|vy59UK!jFN`9KgKKXsy;Jvye7+gNEut`LLBC6xM!=m(6XP7qCgL(BuA z;<0<%RC$A7`Yl#zmuv_U{LcSKX8TFr5y|_%BwpOLRWiuhE5kinCrCk9y+#8da=uS% JnAQgv{sZ-JpBexF literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$CatchesContext.class b/Assignment-2/Java-8/Java8Parser$CatchesContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a559f564cc85617d563923e60740eb4e7155a63d GIT binary patch literal 1226 zcma)6+iuf95Iq}*I2Wf)Qo^MTG>}qqF?EqDft08cii8LX6(UvN-E{vimpdxr z4A*B8D{WKspSOpm=koT*7JMwyNI+GQ)R01&VKGw8-LR5je!#^uZ+HTA87kH8KIs`l z(;gVa>$=Taknw~yG`f~6no>d2ki{Is+*t;OR+OMq>yDg(VcKHo7>65%<$lGz7I~f#lMZ;ArGH9G! zb$pvS`LkT@&Hw`Yr-n9bI}%#ba7{upd~As+GSfdD6+@vKv6Ug-9_?|OO4qXamUpnr zoo#b>NSRd68rY`r96E1AkgaG-XEvg_*_4B&F+^HFTSvDI$Jw#>_?SVd);gr_TOjAe zu>KE&g~P*vZqw<+NHT;W+Y@I0#S`;oc$uWMC16YUMxN8>4=qWZo9S+CpO%mzxy4=a zXygj&tYgz;{Ed`zC`1>ZmN7It+;7~VMa|Kt1d8Px#=}ksPQLPu0BV2e(M@Gd# z8T1dhN#__UK4^uWWqPkbp&XDQ(9#hy6DWTJKT|0!?hHU7fLd>q-edk99RroL zmq6tk^7?nwD64?w310sn$x@W$2a)_dB~j4uRdn3(Bf}cS0_lE@Pwz_kqW46}W)U+{fXcXZFNtuT!!Ns=IAfMJjlZg)){UbzfYmDYPI zUo~~BqxuzUN?_@FhN-p;*V6<-QNj>P3BeL*gxXUmcp-pthE$$RBiZKcIaGx6FB#zV5iea+SiiE^e z)RbKjJ|SUJgvv`<0V72a&37TQVo)skz=Rm_xmPdlA@hTC{b|pHt=90Sr<&E=}uzpD-jV zN|WmGDHe0UuyBch{?Pj>wrTwT2}NWR#XFw9fB07a5OR_glm}?}9lPu7^H+v|E=FXV z7o^aG+v2YG+IH#fNllBC_m$%G4vIa^datwGGsU?eu~Rg=;+F-(15D96P5&m4q!U@I zMJ;)XUWeA5J?g~OF@#S7?L$C2vD#g3V(bR l$aoxNoj{(SgCw!&XL*7pe`i>xy+nCalwbup`WRM``wP!LVJH9q literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassBodyDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$ClassBodyDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..22653deec451cb9142f8c71b32faa43c594a0dee GIT binary patch literal 1721 zcma)7+fEZv6kWRmOldom7UhmtgkFGxqF^8DbgI0}o-=2!wJ&R*Ge3WQ`wrkf?y5)-(oggwefgJ8o2rD2(CmMKL`rqBabMKXh4qzKb(zz5duaXXCAw^X!lI!eUyxS(jF9FY*{raUp|?802)$mph?n)!-!W z5oQYKt+!g-RxwN%2$fMY94Sm;r!j=l48|}{7!jjP*P1DIpUafvUMHS_Gv~tP*-X#oXB@%y*av zX^Y?xZ1LNv?yM3)-zJcT}f9fpDnd%HSM~1WVqD*Au;Cm`P>nb8^V!~Ek|-@ zRg(wFlUO)}3Gc0wT7CZjCK}-XQ@-8-KhWSAFlGvljlneNP=*M*Mw`lx(^g<%c7Wysv?$;OyB1Jv2V{Lf zHVTmJ%C|-cpm4fssXYD#xld>Lr;yrx8xGIwWk&$(yLy|cf5fBymCDO?jNg7wNf^B%wPWGtkKF@lpg zSZhYIPh|pKGm#^#Bnv+e+pSSjCopMZDu-zl z2<4m66UKM^&{t0goAym5)tv(qGlXJ7Rl|>!2!*szL@9?k+$PKlHc<}yM6m5f0=YJv z(D$w89B8un92PX$jOh4kIF(QeNA{1fWjhzDT-)awVQe=#7KF)$ABtwXbtvS%cNpjs zanWz~c8Gd(LzpwypM-jNEII_kcIt#o*A?Aj!hIzHgRaoGtB^gup$3e1I4QqqfHLUZhwLfA4 zra+grmZT=ABh3GTg5@8 Y8wpj8^ISnYy2*bit$B;1#c>;%KfDM#^8f$< literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..039b75a9ac2a98611df10853ac7b2af75c2e3ff6 GIT binary patch literal 3020 zcma)8TUQfT7~LnK41@`CQCkEA1Zfh~*v8gNsBO4dqcI?)SZi%N!htoI%+Sfi1wW<# zp%3i~UHZ^vU;CrFy3gdoWM&j!=9|py@7v#PpUJ=fz4;qJ0Y7Vq2@E_iUKzL64W}-h z1bXn1hF%>S`UF1ry_#FD8ufb7s=J1@Etef>xTbBb9v(QdUgzDiZMpK$73kZOZpD5n zErBbkVliE^oxQAKxm73o>PFUSSgu)m20y%K5z1$6`1t%7c9$my_WdM&+GUYp9q}kCTCHzVfKh3F9@XlBwa8DL=g357n{`=%T=cALNz3WbYhx5YqxPe#FU)%SNr;Kn<4!F8E>V zj#)FDc9;a_a9P8=j!%&in2%h7P-6vp7fs7_@2cI2UYw8*$F`**!$t9Bqe_;RbOw;d z6&+V`O<<0zA)Qm!Sm0)=LtcRMW8yLo{H zCCSK%hVdL}X}z$qTIS70>n7>?)yl~*9e>Ze_Pn*1q)iwdkqP7?O7O=B2{NxTzoasM zKTIILvQ`l|-<4!XZ30){mu&}klD2NN&Ly>!O8S8ed~Z*j`nT0_t8~eOF5nTAEbAJS zor743RN!*JCsM?8)DD`m6}TAi=+-l#dg~M`T08QPT}q{k+$v90>TDFa{tn4{OX2CZ z!c)I3O-e=}x#=3)FCQ5Ptu^jb!f8fJY}yTHTi!EO=pom9Se@!FKJD@K!G!;Ka{14s>e8Fq4dY*g8>zBBRn1`OCRcI|Uw0n&HAh?8E zd>O-S&*=`YZHgG5lVW!~f}%`ZJ}RNxQ3eQ6NP?E^jEms%4D`x>_BEDN%Wbw zNCr#TB=qZudPhc&aV`knYSsIV=Tz{qsCvmV%6iE%8gzV0=u!mBP$8nL&wO27LPS>! zQC)pbie;?$a#Dk1PGil=$AUTiLg*^)g&oG54&y1r{jkGi(_u2`uuEtW55f*= z^Vp`Tpo2;1LzKb}Gfjt?phJ~V{z33L#96eKS(x|>vw!lox!MWtC~`J>a|e9#2x zrcThRF7*uK_3s^YQwYEE%^KA9DWnpFn(@fOKS=+EyV@Cqd%a^jIqR&a(nrv`grt$OWFDA4%HpX_eTY(vH#oKs!$R TjCPXtN7^ac=d?4lKcWAB^zhlJ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpression_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$ClassInstanceCreationExpression_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9b833a6b4de2a66cdadd58b05ae3dd248695b490 GIT binary patch literal 2490 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassModifierContext.class b/Assignment-2/Java-8/Java8Parser$ClassModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..47a6b6514350da2fb7a02860c909faa056ba3bf3 GIT binary patch literal 1547 zcma)+ZBNrs6vzK}g>`I2wgEl?GM={%DJniBBPL@)tQm9JD(?$iNoBOA>j+=P@8Ao4 zqtO=z;`39YiGCg9X;Un4Fp^TK0~jn@-JE_Lmg9VLHYhSDIzDMd#f7l7xPoVu+BkX6ME^$fOczTDR8>edWqsZMC4S z-eM5T6?G%8ty1suD^;zMFK8rN)$*Dv+q3$}t5(C_;%kO09d9##!JSyD ztimq(KtKY+1&q_0qPHms^aRA@q#!&) z?;(UI^h!OWHSAu+j%b}Euo;l@10r&KiUMN)(yxh|4x%T6=r=^q1kn>g^jo55TlBbJ zi7593!S4v3Yr$=0&j!)&iB1R6$sqaz(U~B6E{Og}G=1~5rpQ#+ae;PG&W=9Ez*Bl` zx*bJ`-2RMk>vvbQr_p*=}?-3eQwe{Q$t HtLXa;l^a95 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$ClassOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..31c199317790f790b5f647a4db7d929afb62c10e GIT binary patch literal 2342 zcmb7GTTc^F5dO{*IIfl8o*UdT^Ox_QmRx|DzPSBa zbip}I=gZ~Y4Q{Ne8wJ`K(VR_DyUrLgE`0YT*Y7jp(C-Y>vm_WI1hON#=(M~TT357f zT{X)F@m;D?NY~7YC&tO`WQfshoI12tPU~7T47n5Msn4+7fUrA_o^G6^=iQ|L%L7BG z(&SlvlOHhn;)yJ!*eZGPA~8(VXeiU*m8WZ!W+#n9WzG;@G1dIjhw5IXs#-*`+ui~z z#j=s-_ch_V!;$Q9anB4b%e-VhD3(lOmer{ftsdd@_9U&@xhk9?W+{7jBEz^lNA-)9 zA@0PkcO~>9xP8}CM?ZaUy68Iw1i&zeAsUBiH2@#YfM7D>^Btl27``vGqz0wYFOH<= zG{%vj(Pa>{4T5fi7o?iRC?w0EkEB45lacTd+TF@8F-C_HZdgX+4it&@iB>pf(F(f_ zUz4ihg%b5Zc~e1|u#9e2qeN|#s2k-isnQ3+Vc@f38SVXsi(hGKXDUDuKzawi^qzKZ z;daF!Mp6Xt>+m1`Q?}Fkfet2dr=mDb4n)9_(O-zYLU{BTvE+ALksv@M>pE zVM;g!>m>8(Mo#*xog9*r&!2N76g?A{x^Y~Zwv??cbc1FA%)X@*LJ=Y;w1`H1H|;bsqz-Z>sC)|lzyrJ# z!2^Oe<~ACYXHVo(-B)s32@F)Fs?;A#U*JThRLYj?LDg}6RSTS_=bfPG zD{o6WDv;8t$Y9I!-P&?}Ll#U}0+UhhqVLz0tGv43CfAMFHU_a*V2EWNG;6==HUwrf zvd0dumbZ z-&_0`rclbRnK&Xa8fi@nCVd&CFo`J})0m-VoJ9tmO&6HXlp~Os9SYes4WF}dOv4A| zwx=R!tF%EvZ_|^3KrZv&UJ>Y9qG#xWvgga?=GH?QRNRL(zOmenYXn9}`AB=>w*v%{ zt6tT2RWo4rxmd!&u6be>EG!lTW-|0ebnJKBFV47b*`g~HyFnli%9+i4nem1 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassType_lf_classOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$ClassType_lf_classOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..f4e1574a2feac03b3ee3745eb3d72d5a602e9bf3 GIT binary patch literal 1747 zcma)6T~8B16g|^L`n5nm5S4;_V?U5ZK|xzh8jP`~f{}(-vXp6EXt!i{N=l+X#Q)%f zzF_ph;Hy8%cxPM6!j{0x%+Bn+=bX9s%>4cL>o6}`;m{(6H}Ex{0|a#3m=aFbynStz86 z4Xdi@rl?uk(TZj@O<~lzCM?di61VDxsn<3ddpzq$h+*8#nK#Xb(1p=3JK$2Fs$u|x z3`0cop;yS5sE8uQFnAGxA?F3SN`AXw zE`E|f%rNPeFRPNbs?9n#h21^D2=4fCSH(SyGR*g^jR%~eKWCVRcqvQTyPlq$Y$3Jn z#~4H0rAgL+o7@T`f%_^ZFi9Fn9=ERTFT=BB(FJv5M`Tmml5SeXjHH|6EkoRZO?kCh zVn`=%>>q}{b@CB8qiC3XqgmhOR!QHj(N3taM~5^j2DfOTcWuQGBYej+=N4fIZW&cm z7fp*&mpuWw3svxVH2X5kFr6ghxQpctV;B%_gD}hzl{=@Ge+XOc*tTHq@fL%UOchA7 z(?sbHB&c+;@y=Bovhyyf(k(|t@{+vV0jBoz7r z0_jLzIf3$xz8N0S*e~~$Dvilr(Uo4&A1OM8G<**B1kDoLpN<7j5WWn(j|~0vVZljy zNTU=qLxOxXhbbv>f}v9cFDKS1bP<{>L9$RnoHS8F{Bpt}h0?p>N>C`lpU#Z^!0qq! z**c7SXQy-%=GfmJW33GMDUy%FI%6b JF-~(1!T+-BudDz7 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ClassType_lfno_classOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$ClassType_lfno_classOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..dd414b801b97ff8d06aaf28df0760cc8540c004c GIT binary patch literal 1705 zcmb7EYflqF6g|^L`e1pqMN|s%6x)I<3Ie)>gpe3(DjI3{N|rKhR>~~dP6_@L|AQaY z7>FbyYNClh%6Mm6%0f%5*<@yR=H7GeoH;YU{~VtHSiw>d0fvre*1om)(sIk(ji3$J zf@s$fM2KPDw=}+5vdZP$n?1f+DhOvYuYO;+86mk_u<~53tUB~}AQ?hME_2Qf7YtL$ zOeU3e+@fI#S#pj2Im4|8Y437Fx||z1?(W*cDy=!&+zcYZFz9Dp5yFv{v>j0cS0(B? zI?=_@O*F46r8C|#!&ox=nzmz zCbbd707KkYlhS|-?sg!7+d76Y%#ft=xZA=BGnmP&59~i&VWu_|<*1G^MR}JW*s>+Y zNM@VLvkNwN8Pds?&BV~QN~R*4WNpFMD!W_U%~@L|nu%C-TQS54(lgDuMHs^Cc2QWe z;!^Z%L%`An4H`UZE}IOaNivRKs>U#ePU$xY!#Gj-bDH^wu=Sd4Gh&+`FlfnChD!Dh zQTdT!<_e2=SI+ZEjxOJs73gTFlyzz4cb;2&HH|{*fU0Pbb*JLy`4d|~_xS3YR=Ux3 zU*l!@)G5==*E52=<((_1`7Igi2<<(M$!gTLt9k7swMnE9@S=yPSJA6~!1)1gP(z zq{Jb*PZ7SHctoN1FzriFER+zZnkXTDIpLT>=`HXjXp|64PYxX6`Ue_T_YhIU+84BI zCp2SVrk0SPUNLAr;dk}m>W074!hJlb1uhVPsy#OO4T-ntoIFJ${TYJ+D3X9DRF&jA zqS_D4Dp0T}rO*8fWTX+~CxQGr2hs4*W0}W-*E1|q-%ku}MDPe<`WPNl8>ikx_%9aN Bvk?FQ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$CompilationUnitContext.class b/Assignment-2/Java-8/Java8Parser$CompilationUnitContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a5c08732a9b2e082926395ce7b647bfc0a2981d6 GIT binary patch literal 1946 zcma)6T~8B16g|_{w%cwgEfhgOln?0#vZyF%5ydL8rXrEb`vQ|@VY}OGw*-HR|G@`+ z!RUj*SO1dHcxPK-yX^+kWM(>h?>YD5-1+(E+jjsPcoso`A^u7|R#&%GtI4exLbwt^ zSVja8N{KRI6*0^0YkGR3GkS&*U71OFIs$uJva=ffq zEyLF8T(K?Al`6ODnxX1j<^eB85M!8gGi25tb|?fdPgAqI=uY z`8oeuwsJ@rD7tFYl#;GCn?=7M+DW>+DTqOaS$7cSdc(Br{xPIw3}Kid*&RcZVWu~T zTsy3mt?5cdYudy$;wfqMeWP!-qZo_env8KwFx=`}&z@8m!fP7!WnHwPe-C?{TZD?&)-sZuIDgAxF^eSbeotWJqaV4G<{#9}1aW z^pio_(Q1Zjw=80P)MK#LMd+ui;yN+rvLsn|c)r$@u-&a1hSf```^(HBp7#>_*fPi+ z&6kY>enJh)=E_t6M;BtC7?ylg=S;pMy(+x{|I|gQU`XuP)T-BNqtm&l&_)|Awqv%e zeZHv)=s{O$7DX56)!E`r`=!~W2S_d(Bv)thIgR3oM_lI*#h7o;8AkmIPI&!GLW2>) zD7~XV3^b*fr!`CerVykP5XlFErwD$cBQ==Tu(*!?qBV~Kt-^SwV;s+?C9;m6LGn8M zCesDnMxcWp5HN(EPM#v=F_wTu`WS%XI4!wY0(4I-$#I7z>2(w_-|5Ga>BAE4u-tW= z?)9={+AJ9_i$tdMsJR@1PA-LsFSz=dj_pdtC<90`!cu~6mT|x1FiyKjJ~%k_@!Z%c zt296#9$=+oxIzFT;dJ2#CO;riIKyQAE2aVvBmt)#ZITpHQW~oQ6f8yV4=)3m=>^FU o$jAjq5RV*|BG#Op;W6#gq?Zs8tV5z7!xLJQv_GXiL;D7#znb>mz5oCK literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConditionalAndExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ConditionalAndExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b02b6345f15b2937ca2f74e211580db118100151 GIT binary patch literal 1434 zcma)6-BQy)7(LryQ`!J+v5Hy*6|p}^&|wChqSFpPW1LbQ>2M#~9VQYsOp-Ev72m-N zz0uJN2XB1?U&isOpDn=Me zk&QV+bnKpI9q~8rM*q;|o@Y5?%@IED`)MShsz_-VMVg@+W%;)O=4)blVhr`kHNeUd<>s9d}PRg>Sq1(X#ILgl`>iePA}iu1PDJhB1sY zq)55#>~q1eP%`2)e3x^*&D{fwEVi63Cygv}D)Jg8ah+lQYNZ*HtCq0*m$KSb?Hc7B z6*m|rBat;N&*y@>85A(3;TCQ)Omhm_jmwf@snm=p%*6r2jBDi`DPGhtEyatxZ~1W) zhJtlo>*XoS{}sJxLTU^nYm_a+MAH(y)jQbbZrj|oX=kbvGa?N7nG$g(PtL`lG+OHn z72=)Swc%znXyE`FqRacFP%0Y?qe0+uvVw5q#exxR(+r)ojlyLZ+xE@Q{+4+do-rjO z9;l_aou1p_o0gQ$M!L2rr=F&^#XbL(7s-gW-dtw_vmh9>B0jl z817<*p0o7!01EvAGL^ide8IJ2D4*z+5dlP@PxWPb-Y4J?Avqu<&k|M$I){fLVK%Ig zs${o_kU5KfPB^-25qX75tCec;D<(dldPyTeUTR3zR|z_gMH{CY!va>UD&Y64fxii22{`d*t0TyKh2$9Fyp|8rjJJ$*b(;gT17O4 z2urErE(fAkG-F52S2WAY71G73xua@^T`|?edDW~Lw!SaaMywuo&WS@&(2oH^h?UFL zJz)^0Q-y9Cwkd>K7UsUrnU$*BA}3>zFy_s`7j_tN49U2lU>Fw(Q|F705M0s?-M;Sx zbl!{#=?xi|2t%HLin?VBLzodHFsk4(l7vygMwlL#T0s+LQbiBl>tzeoG$5DWaAdD2 zxa!D`h`MffQB7=h?g_$dD&6hC4$YGz^yInnglJJWM5(sFDa^9AS>ct?vllDt<-%Ht z+mS^(7TRwiAuP^XlrYg2jz4KaZ+@-loHFc5s)chL>zYyvc3MM%(roL3u`TKZDU~h| z`dp8kekIIx=>Rtwx3SCInWs*(D}?@aTie=uq8*&p#_^`17GAH`%q{UyccceBUeE6G zUE(s9gk`T*Et?}N7~DGU#S#|bipSgz-Vl-=fG<-*%(sRKzJzgpSip|~VVviLYdpIS ziT{8|CN4=|(R%{vn5V=WU88?NSO|(Zo+K`X7 z6W%a1)k%J}ll)sor;+i?2OILicKLS<UIR4&c*PWQ}@fhWC0e$}fRpysi literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConditionalOrExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ConditionalOrExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7caa7363dfca68a9e5bf09c7a980e6d55c112896 GIT binary patch literal 1438 zcma)6-A)rh6#k}*-TrK$Eg~pYP!aosEE*F{N+g76tf|F7!~H@hWTo9DyHnCv@g2O- z8;xEVy!8ou025=>L=(L=p4l!qq20*MZfExUIrE(}{qX1QI{>S=r6b0Weq9T#Zq0RCwy<5tYOgx2`@MaS`#vpcU+|ttAr4(f!ax!!hH?aT-5X#sjP7!= z(QWfkieb4}e@eBOZOhp;*V>lvS8JuZ>+PDBBif#MaNG2{j<7r2?3b&stFjWqKn9}> z2~uvld)#4IDAuAhgvYtrZFv0<>IW68}(2AuRLox_lP8P#bL^}hqU<8{qLq~0+co{OA!rIw;Z0&~! zOvsS?YN<`P>+SFdwv^5)ZCjL6PgC3AzIf>Rf-0*yGzY;I;6B5Q(xqVuGh9*-L*l_@ zx*b`%^neaRV}_oyw7Lq7egWxnUejLT%ptTFv}8m8QRvgkCwg8X-~b`sC&W(@J`;2f z*FwT<=#VI98$?K-M1LV1-8MyDBWt}}DZIwm%i~&7h*2$H5nuU6(0N=B2?ct~1B~SG z@%b^jU-@_XQbZ|4-XR6jK)&)G6VH&T9AcvU29q&JmsoJ(zRM5fR(_&PyA)22=#~G8 lOb?3uB9Y(!L^Lb}E;q0kyy+IvJ5Ro{0Za7vDQmuoFFaOVI3 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstantDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$ConstantDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b7bbaeb40f8ba45413282df1e3379b598b2d5ecb GIT binary patch literal 1842 zcma)7T~E_c7=F%%>%M?(C?ITtfVvN$s3_nNB&cy_5aTBIWgKT=w500@{uKX%7kY!y z3xl_s7-M3hCYtCEF}|m3rF4Mo;+*#MeV+I0dC%VedGi*)0v06r7$WzTZDsm_V$``I zp^YKwIv9DRDVkP(y2TfD&Ez{~7y(EUf>DGJX1M6KC6l_TXy$ERsVRnHs=8*Q7&@xl zeAuWtGz_!p;yO8&Yl>Et7i&tro-bsIx>1#hp=QY2ld{p!Om&mX&DdP%yo4x2#_fAW zF;r!>#vR|fQB>=uE9j0WIuTB3PiO@ni}%#BS|Q)2vaU+5h2BSESA%owjG=}jI)=e?<^a7{k9mf+Md}aLx~OV=xv{y*jj~VzL-+QfqF@;F zkRB@@;h}VAslbpW*rB~>RSQF`VyEWFgCRlqb)otFRx^Z3YE@IrhCu<(v>41DNZzTI zL+KQDj$%xwNy~>d!fVVBwN+Wr*7y#CKb@iELRN>xkTFagp&u(xYZ}WmAC69_uMF)a zQ>kn$DO+~!gQB}lws1*r7!`h371S|Th~uIdG?B}^Zr;=DCPh}zNO;z5z-d@w-flDW zIW=$w-F?ZVj%_4K&H;OBLK+Xy%!ywJG;p{?YntAM;io4cl1=#iyEwH6{|kDhyNA|* z_>}xWYZf_LJ%C6P5b**&lIbYMY`~!HA()NL6QJE|{fX?xA;V|U56~{+k+O;SF1ozN zpD{rneYk9auGlU_5=o})cN`#kN!@hyb@ E0(Xnj-v9sr literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstantExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ConstantExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e92b7355dbd390cbf10b612e341ffb724f63ff86 GIT binary patch literal 1069 zcma)5O>fgc5PcJ;apE{_okB|?e3YieP7vmR1X3C#6h3O?R)to*yX`76q;_R*s{9rH z0|&T(;DE{%iNAyxCvGsZ5WUQLci+4>^LG5>*Vk_Vo}i_oK&Za-PQ6DvUKEQ+MUikl zbI^P?I*CLa`(e-v11UyQLkX&ivW^Ng!de#0kXU+w%q0;wUK7C+E!$A7S!k*NY$?j;-QByIiV-E9#^^2tuN*jLQ%g2Pf z=0&9(YhOj3u#jog^6T*sV{l%WMzC$SX!XrVLbNxVU504K-wC5cR_(V@1#R-nYh@hC3L#T`! zN!%vf|A$R766v$-@z=Q>+yJ4rE4{|;VQ0iZ18Rs3V#9BR$Wm(Vdf0V z2j23?b1WrS-KQLRrZ}D_D14{3+Ktbsew>0e6d3#hrS2v}Z{TK{(BL&uC>r?reu|z@ zJA8ACYnxC%WCrFyz5N}=JJi}|Fj`-*P(Y$m7?(6raba|~aGOuLdV|wf|3|WvC)r_= eSAR$pG{-7ySRb#1JG|CeH*v`1e>|Vy(9b;|APx}6=lgCD@<7KJL$U8* ztuBNwUFrFv;S0$xWg1E7I#LEEkY-rz2NNWeu8@2FiTBpyK}=zoI_2_pr_Fl@+oto5 z%35t#oLY^x8-_Kz?D)Z{Mf7%HT|Bjdj*#9tx4O>y*fnLrFffTJh7>8c{4*{XHca~_ z4HNR+(MPkij&aKIYmWAkMT_K2%~$28v2-mS1{u5Xz8td;MfsG0WGK zhk9LO7;8{k4AYJ$c(ZeU#DkW5)TWc<{+pMM-C(GY%E^elXy;7g(VQ&C)jpq`+_w%e0p0 zZWS6`0hvl()4pK*3fd>SrB=|IRF8^TTJICEODM&JR3*Dggv=m1Pq?*F==D+P8A3l8 zh0c#c&k~wGj@XH^u8~WCZjeX(Y(@9FoO(g0ACXOjx8{y{ne>KK8)fcU+(c zCdx7J83~XC^3|Uxe86P&3Wdry%qO6VB%*A(MHZ1OE}^1C!E!{e{!e6aSY(+*O8-PO bY(!NaVKdqpEZXx_SG8)3{&LFmV@&)3plK{@ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstructorBodyContext.class b/Assignment-2/Java-8/Java8Parser$ConstructorBodyContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a56f9285de8eb7bab9ef0860b8f56fb090310a6a GIT binary patch literal 1533 zcma)6TTc@~6#k}*-Cnk|6okq}Q4o4T78Nf^i3v0qYbr6&@Zj50CS>V$mh4VRN%V*K zAAHakjXoHB^+y@cZr8fBMad>JJG19}-#Ov0@8XI_-wEoh|$DjE<6bBtz_o%evj(|SJszdq(V9~q-&<&JMGp1 zck0H0MK{si0B(-|OLB&Fq6?>Rl@2Krk}p&l;(mR- zW}%L~L_NR3eF^K->VH(C>N2FLhZ@aS#z~NV%&T!1EwN{}od$nydeE6rs;kG;$TVC# z+?6kEm*z~X3X6k<|~rP(hS`_v0Qfd~cfBASzAT0k*yn4#TESINBj&@=94+NKXBtOSNn z2!J4vE&agMd!$O|m@0n7jR-uFh+m;DNe5%OGu-n)!N$ma^?x99gCK7Sq`Tzg` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstructorDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$ConstructorDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..477a5df026e5d17b8c906171487b01d40caf7d29 GIT binary patch literal 1875 zcma)6TT|0O6#lk>26_=_g(~GD7qJ(ls3>SFUT_@i6vh#TS0}V<36w;WErK)pKl~3q z=nIZMIQZ(1ay*-qHl%dmWlyquzVCeJvitYnuipTk;IWDTL-?h(uPwdOESp;@x)@TP zjp-HBu!U7G3)6bW%Qel?=!-T5KM)}Vp{nSKpcf&A^f@@)G#WsLOI0pj*K54FQAm|` zNJp-w8P(iMO|$KMFk_Ug*XtY|KPj5=%$q1$-@i0HoMJL|Da(h72lKG|23)q~+JVV!tS>e>Il5X&| z`ra0|Hngpp-0|?sX`otnX7-E=amGE+lL29f5qw8ZYpdA|z3Y0_&_vy$h=n$XLZ?hl zSgAPjPUV*=YBoi)-=Wlge+E^!W5qD$OY8K!5pkq3$VH>V4;YkGx=6yErpx=pFyCRM zgvA>dZ-c&0Mu(cr5M38qd3RNN*Qj=nY_-c4S~u%fnLpPhb-yQ}Iaxi1o;7ZZ7p5&p zS<#?bbS^%p`!z!4@Xuhg*9@a)9JgkVVaRjtX(-L1=fGDZi+}?dCo3bU znOO7)eSYU%%+g^1HyzNNCrW_!NmexJ$cp-b2D#=i?*TOOh`X}le!zQjrPs*=P#js= zkslcRPM>blArgaxKrm6Kom;rw03^xE2ulCv*QT>up?x~IgN26UA`wXKvFsltzaW}D zMl$mgqXEbu0jIKVkV6b4KH{z<1sfpvz4J&W+DSeU$>$b{f<-6F67D;e;Q`qUx}8Sn Xsr^!Ofoz!UL$Xn_%VgtZAEEa@ql(|q literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstructorDeclaratorContext.class b/Assignment-2/Java-8/Java8Parser$ConstructorDeclaratorContext.class new file mode 100644 index 0000000000000000000000000000000000000000..997ea92af8138bce955ec61531e15ecc3db8c1ad GIT binary patch literal 1696 zcma)6+fEZv6kVrNJEfhLmW#B2%1!JA7*v!?iHSjpHMJqo5MPIKBm>hanVAy&6#u~o zebMNH!B@Y@p!-aRI<(Ws%Q% zM2Wf9JmDt8LayA8!?8G5Yusw+re;)|hn#wl>MB_jOS!0Ahg-HMUB(c@yuZ-xrq$4l zPGCj1olbj3Fe>A=f-z(Wb+c+1BAdFYJI_P`H|;<coB!5!RX z80Tc1u%Xu*hQ(aP2cHX!@=7b^_XX{gf@wjU<>$JnI*2uCUmG2U`?>tJJb|NCVhC@M zFARef-Q?9))bfSgPE1UNvopl$A}I75C(En_)E26^6+`m%XVVSYYpH z?)rCyCMbdtx`;rx2*V6!X`Q3DSxEE*#0x``^aZyrAbp}&@{87p_%-&M)_FXjRRE?u zK(vrrCqTSA`jX;uLD3sQ(SIm9kAlbT6EoNrGuTB>C!C>(g_0C`4z*TJEg`D0x~ipnJ9%WV#xzc&@TETrQUw*1iO97h(@Yd_5xRlfG99j{E6%b zB#IZv7QSI31d$}<_OqQtK{}JbLqQ6bCitWOk=*MgNfAly Vy0uEC3(ae^57NF)yGXo&fxnP6pC14K literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ConstructorModifierContext.class b/Assignment-2/Java-8/Java8Parser$ConstructorModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..171f1e45583e23c628ac8ba1fb209eea86d21ab9 GIT binary patch literal 1355 zcma)6T~8B16g|_$ZfOg&MJ)26e2M))7LAD}B_>!gtSQ*Qiq8v-WTniS-6`R(_#b@G z#DJnvj6V6JjCZzct#paJ%y z1;bpyJdZp}aXm;8bc#i#{^KsW!O*uM?d`o) z`&Fnnp*(4^B{$rrx6L0riaOKb@VshHYOXcz%N5s`q|6jluAo!7&yel1h+!nc=&&r9 zq?XOly8{wnxQ6RAPS9!^8hrt&Qcly3aOo7=*;@+Om^~k?a%1^PdPhi<@D< zD9!4wTITtiHn?@i&vZ~gF$CTt0-`{!{0&2|(N{jjQ0XJ`F{mW5z?)W*ugK<4QBtH} qSqd-zk7Tr)Zs#FW~=Tn+*qxUy?7(1c> literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ContinueStatementContext.class b/Assignment-2/Java-8/Java8Parser$ContinueStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a45fcd4613dedb7064982999a8c30a9d95fc5e34 GIT binary patch literal 1095 zcma)4O>fgc5Pchmd^iqCT3WsW6dFn#Bf${ig za>#iDs)v%O-X%G3J*VIHd(_aOBbSC@AdiCrE3s+g#_kRKv{x^6)%D!)nyMCGY9^;) zo9k&51?Hy|wcH>ik7N!7%o&)+A%R8KMRG=}fLU!#rS5A+!(3N%iv|uWx&<1!kxzda z$Bs4cw7Yiu{;EK&`rm#DB%AD;K%wP&)E*8tNOql#K1Y(B)iql{w|gwW-Ev6^7(5o` zo9*>zB%oDIMr0#_DlBkuAN!(7MILr}X1{G>X##nk{^rh_^Keo(qXdrG^o~E2n{?Av z)Ws>YE!D=*Nsc5r^K2LqB0O?<=3GlV$Ei<2zlm%Ab(^ zu-Ax=1UK>&DeDfrOGrsk=Y|DHT$cwjwBv5DnS8?GU+jCdD3CL4ptA zA6UQ!1PfHQd=%o^39Z|t0$G|FkMBA6o_mjf{r>&~z&ch{L>N-f&13V)3)6AAlSC9( zRKzr>h%@M+Pvs5%+VpJMGi{GIheGm^WQg~<><$mPU|6oSTGjT@=^LhywqqPWG8|7x zYrqZZaBg(DGq8kdcZU1Cp(1&Ke$(ayF3!>W)o2>hm}8iuL@z!2Ec05WeL#g9wki5X z(>7hVaasDYwh+3JLG2}zNY+J76 zf;%Y`a6`jQ++xU*c#>6n+wgm5ZgI(@)&0U*rG#(lhLy1VkHO?4ggFut%wZuLjF({R4iy;vx_Q%4o zdPzS6=LAjdl865GjZ`zFcci&@xNROy3XA*N$85=+q37)JEz76QgvwhvAj^S^X6QcxVqmxfoz^0~6`{}xh}SZj@&(E#Ix~tM z$3YkLb`K?5i*#3-M5k)G1VyJ#khlmqqENDF2%r#9t<@L5V*WE7$LvW&0Nq7QmvmFc z{Rv=!cE27a^XB7euwOECkJcqTptVR}9uomkAXop1!Uv@5Cn(gu;d%sql1Lz7oMeQo v{uULwC8=40SN}z_FirA~NZy~3D5wQl>R1kThKIE0C~uS!tRO)TgMq{!mx>`n literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$DimExprContext.class b/Assignment-2/Java-8/Java8Parser$DimExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0f0dce253810ce8a2119f992ef64c6952a3fafdb GIT binary patch literal 1605 zcma)6T~pIQ6g}J4ex{TbL8Ty{Vn2|eprCD;!K!1mG7fZj53tjTv!d3&YpX3e*O9W1Hd*a5d;_#Z?scw^Sx%-+=?TF8xe#R zL=a_|^n6-;p|@XlPpqnG2;LP8(IyuS^Oze9%eh)DUpK9$su`kXsi*6z)iH$L=Bltb zR~y`F>xS0aF^_mDf;hvp7g@q`+ty9P1(z}u1xbuBj1bLkr^Wlcd z+`%Nn(okc3+8DxR-O$CB^mDkGz8t#wegsntV;(=H25xXGfh_JSn87TA!l`POTSA7J zT-}o}P})*{U#8A0Sdgg+-ql4vGhBbZyIpi@*@u)0>7SIu`M)`2xyUsC->e+9I;~ z9Cemgkw1*Ab$g^{9PutgFqf|px8t|$JciY4s_Be|Q_=B^X(z5t zQCWi?T71v!Scm+TE}=&~;#Q;qG?qKu7Ozd4CRC{z)CSIoaBAI=!3j?L3}#6Cu829B z#tHgi05LEu;vTI_^frqiJps|eXeD@t;AeVfxKC?Xo>$~s4tZK-^nx3mC}d(3oj6Bq zFd;ypg<{UBog14*U%5QcR?fNu41*2pz@)`WV29lcdsmp(#M;q$!nkG^GX; z<&|lQJqbaFr8xB!<6r2pcjGu=qoN>ONz%zG9=Zurv`bl`G=6{TNB8_0p)ZfH=03}wBwM`T9N za=J#NXL(+|;(La|?inrH6Lm?UX-FZ>kUpJ(!JJOeth5Gh*RUMXbB%*LhC6hG-RFki zP>7#0XOLBq)3AW^3@c}YG0d5^V~Y)jRsF0~&C0fl3k(Y(fn;~w;cgOnT+(nEiwr4F zvburBBv46jg%A_*Cz94H+Y(&Va7BVOKC;CLR_*wsV#w)Jsxm|ygAS*mv}}iO4*NUY z-LiIiVAq6PQu-B!=n?rr2~ke8iyWl_s%{JD1~; zth03$E)V9oMYoB5qyh=o7S`^Ir`CSZL`-VoXG^pPLwA=yvSsQ_sIs*^+C7HYCileS zfhVZ4rb7c6FCr)P)2El6#G0rZG=pojoEiFdK$hVumJmUSo}^`D)oM;T#JSgWWfbg( z!Tf~lbdR7s1})QBqUSOc@&QQ#6%LU+g7Po$GlkN!h5!ly)M~Bx7V~fD>a!$d9`l$s z^(%R9U?l()$;z^#SscIm8!bzR`Hjw-(CIAEo4b@j){?7zME)gGwIk%K?{F~!$r2g& z;B|S{VmAya(9n1lq(&Qii|cfAB$H zaP+~!SAUV?IE;7GfPn<hRiGNP+NJcSvI%Qh#@W^ zAwxovVbpgt^IY%Q4byP=k;9PcaHnk^aKmO8DK*QjeM+MA9lfixblXuyqO^<*WQOEf zEW>Q6NwKEYQ8dHpTFT*)V)YG2?{USkI9J-->gk5o-7xpKDq)DB=r3W-Fib~tbkpz( z5i~g&c@!9iiDt9k<=zn$HeDK&)zyrS(&%cot%eqQO~!THU>LfXfuR;ma8>yO{e1i+ z!A;zfa9hS0#u@I1-Z}tdNYr#gcj`i{aHRqmwOQVlaEF}mi6v~{2DdUOVp7IkOp$Ax z?6ZWC4CAGiFWT>}THY3*85#EkD9Mj>XMjnx);HH0uNexZfRGHa2DwH)v~+`S^m{wp zYHK@P+DUEc9Yb^a7OiUmWG(!b!G5T#3{}xpSkdw^MNZKDb$ zg;CT)D1Q4W<`6(57&$@qGB8G= z^xA!ZC;_EPb^J3%KhbiaRa&SazO(Tp?L5RI4=_fv5I33|{%{`b3L8(+!6KHtz-3Ax z1T9p*qxc@#>IsUKFPMlxkVITV1|;-xjA!v!Bn8V8{K@~4Ob3(XC`tZrk|>s4mK8j8 UXNG4q7l>EfUquR8nrle?0r~lD^#A|> literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$DoStatementContext.class b/Assignment-2/Java-8/Java8Parser$DoStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..046031d4412c39508a4f396269a491aa710e4602 GIT binary patch literal 1572 zcma)5?@!ZE6g_Vn>wa|X2P%pKK@htQDIy9uq9HKD%$Nig{9NFL6twI?)~}e+jjtqm>1wYAn2xNI4m%N1_aR86Ut^&OrU5MfBW**m%IN<|2r9CQIt}5ED zyi`?8Gk;$0=Dl3elsmyN=+0ee92nd*Rb6Xkh#-YN0T)DE#3hDt&s%jdGXxh@O|>4_ zVt6aj6+?Az3b@SB=PIbAniki%5k)@+L|jFhAwjZp!{q_Ps8n(VdH9phY}yn!u*nwL(CfxFf27*f3D<2W_oy>zGRoYvR&6_s?eGS7;Z$K!Ui1|Ome@ySx zAG8MTbLj=GW4J-9jUH{GquErL(9u(bI|E)4bli)6+Kc`bp>KMj=e^Lc2`wShT}-@L zOuVz0Hw4Xk(ckx?e@p0`7y6+W`W>NZ#$CnuNg*MdOMgM~q%C6vK9cc0g3Wa;qc56o6OA4-Z|%P}<#4xVl^ot|7J8-7)*CuqNFaq_9ccq2IKwd0HS=S~7@|uy72>uM z++FRlGnCY(jijNQk8Z%4XnHFRrNt<_)KK4tqDl5XsmL7~av?lA&7*+e`5sg>6MK5)W{y@=Fn5NMr zgsA{KnM=nhI(dlrzwjR^^lCTwJKf+vQ8Znz5WGe-dM-cl8bdE>+0HzH2w;9j)cis_ zGnfqyjMJ>NYN^N1JHc(4U+F^z*&y&H0T2Yz`S%!ohJpMcMssg47J(v(_~mJne8aH$ v9XSOGHcZF!{{tC64)TLQe*Oi~Fz2&e!@NJ!pOoe_@%9nH0^;;ATu1yjbT?K< literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ElementValueContext.class b/Assignment-2/Java-8/Java8Parser$ElementValueContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c0538c0a040e32d38872c518487d277e577bcdc4 GIT binary patch literal 1476 zcma)6T~8B16g|_$F7yN1V*LW7K*fF_i$bDFi3uSXYbr59cpvD5EH1lbc1o)Mz{JEv zP1NX5@IhZR`e5+YA7#ATE@f=3@-laJ=ALu!J@@YX{PpcSfE6s6h%m(O@k4&=0hhjz zCI%P^+ChHRbL+OUJ(oLc%>yZXpZ0X9L{r5Og=u0ifg!{gCUxAJBld->wz$&}p*zFy zu22sf&dI@Yp|(fSEr+|i)~dsOzfvvMJh^LeS2@x;T(V@tRrbEH+6ijtiire+)i3CZ zl>BkkrQEq=KM^ua!o)DcgbrG9T~G0##7ZxwImJZiD98n!;}=^;BC_GxG^LvLvlm$ zok#ciL0IWvAa0v2w&6A8j<{n7)G4h;^LsSw41?>!S9d*MQD#+_I^7z4;gekd(wU}2 z*C*72VMaggqZ&<6k1&{`-#0}M0bqjRGA3!w(bo(N+5z!W#xOqP%n^)_^hsLN8V#;; zPidVd#~whu4TyIGo{?)FS9$@-HXzvzcuubL`)L4!qMN1i_!o?P>ZB7x1jxNWH20ER zXK^(IjFAm$Fj9vfI?nCfU(rPY#nAC45fBA3b%7 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ElementValueListContext.class b/Assignment-2/Java-8/Java8Parser$ElementValueListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..edf47a55bd336e07d825cad539541460b5f73a24 GIT binary patch literal 1603 zcma)6T~pIg5IwhnrXMMk0s=xU71Xpvf(nAR!@zWOtW(gD4(|c(bOLGWqzTi%;(zc# zUvTun!B>BjO_x{OmczSF0#V2^VhZ9&Ff0vAuNxi5FJTyOa_56<_AxqCr`Au2Su=I3 zsZ~wA(}lK&?=3+f7Zk9Mjg$*EQR<9HYgx-gE(e z4>_%10vU!lAvfA*+@h`~Rl@N4y57Z@+igdy6%J+Gqfr9Fh;4F<+eu`xs34E~4AZ15w}S$U zECyAr2P&^QARuYEa45i*6+94NQ@m?9VJw9Q{KJq@L(63tsnUYTA$7yz`)=!q+YSB5 zq)7b0Xj;1C+Vs8=s;ms{(l=dsyUegG^c*%$KapXy`fhJ;S9of$!OG2R4=XI#N`mc1 zX~X#pitp%}b;7$0l3J+I(4H#7stjvGH21(fPdCVDeQik*hSY(hAD`{%AN?K1gf2a_ z#6jD&kNImuK&JycSv{qDNY>ux9p_D3SU{;+WESsIa&akw!d_kJnP4>F402bL+%7&b zkk#=B5vcSnM<=6GE@q?)jDDe4h5|jKBAid5NbeDpyrLC)ilQY*6a$h}G=G8QC8WW^ zG^IYifhE0jf$_oQjL)*_6=^=pqR$d5rgw;CaRVoO0T^^ z5~9`o45Im2imc&@UocOnm|RMCKVK#HrkB85!wWhy#7i7_N&okv=Q84d E0mEy62mk;8 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ElementValuePairContext.class b/Assignment-2/Java-8/Java8Parser$ElementValuePairContext.class new file mode 100644 index 0000000000000000000000000000000000000000..79fbdb15bedc67133230a29977b7a5c91b915ec0 GIT binary patch literal 1293 zcma)5ZBNrs6n^fC>s|_s!9)e63Sze*)x<=T5fdc7)XasrWgj#qcI-e3U1x4P!e8+} z_(8vD^n<~#{wU*VSFvGRG)wNiyZ4;udCoacfByRR9l$p3sz?dspWDawgI!ztBy*U; z1r=!xDl!7AiKn&4F7?O@+O|8OUE7g6eJ`MsKp=BKL92g6p1_7-S><|P9+5nCRuer8DL&qkhQZP1p7g z%pKSE{n{k@VSS10S`G!wsVHig$AZB6Sk)tG0_iQsbApFqvEwTp$zf4#6&D5O6UEjY zKOm1}9wl7Ta2ZzwO59(P=Nm0x81+Qvq)F7u?GS8P!_^RMfli!Y6f0+SnZ?<6ND5Sp z|DKk>)DBNgV7Bgf)EM+SBwKdJ<(u?&vuQnT2xye>2-}CzC+Uu7SmUI4s+QNK69L62 zTLRgr6XCc7?o8-&hc%Ne&XX$OAaYOe~Ywk^UY1H#|cZkhw7EW;KNz)P( zUR%7$ZLx1yF5fjwr_!(Y# zjRT7;i9NGn8^U$y{xTF3bi{>uC9?JcRbV4~&T;|Nb)G8QFc z&yk1y8B|~CRr`paF+_9uDi!ZdOG=nwYyd}TCQ`*-=iIfjDHn$NQA1?fJE=Ci~L=}lr82}aG3A1$`;Epv)ePD-IT@eQM2 z>DnnIDO1(v5z`jPvVtdmK$cEfc{D9PUpaTGUZf9C@yvHzBLG=#ruYk!pD<9oz+~Y& zrX!Ff5wBYvk^+XcB330R*f51Z{~yR~7-X41^nV~xyzp4ou{u5-* HB_#d=3zm>G literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EmptyStatement_Context.class b/Assignment-2/Java-8/Java8Parser$EmptyStatement_Context.class new file mode 100644 index 0000000000000000000000000000000000000000..2e5af86fdc6d5888dc1a1a9c14dc0e7d3cd40f2a GIT binary patch literal 969 zcma)4TW=Ck5dIEJSy&cIA#w3tTHXPPrM#oto>buB`3f ztjWHwydKq*B&u~t_B`M1wt{V{Tdyl)%c7VZ*YX^t&|9m$>8kp1P~E9i3__ zrtXwCOymR#6a6&3P?1kEjVxwu6fh?+$BmIZ)TqE}sW}mNj1cwmhNhagaYj=WXyBLb$BX&h2RDRGCbg|-F0_wlq0Fz7_wRIpf9)Rfv2f+6M|fS#tX!I(4tU13_@NB z+woc1M%N8P3I*m5=`b247J1t&-b7#q0%viK?RoyY0)tOLvXZ-JyoK?a&jJ_NCiH#r zBU|1Xwi><6XoJ03sV=-j>dhEzA;#cONE8nkx`2zLfCcuNKAy*mS7Y>$`ZK>=!sQY2 z7BeshW~*P3eThu<3$m5>$j6|w#G;ahS-v4({LY0#m!9YF#s86JJ!;@`13;K9PpN z<#MZ4X`9wgT{E1%Ro}l+w+4oz@5;JkNm=hoYgae4e#h*|Mg}>7nP8eP4b3pRU+>8w zwkj!~#~8*1#+hYf(D%0l7R&9&tiImYjGcP3ui19vxZGZYfoSHQ47IqWS-SSHFYn6j zzGi8TX|;O8GBPL%oDCMbe6VLp+ty9v$mL|HmoQHmydy9l1o1PjnLYh0U0Q*rPv>z4 z?+Q%3-Ly@FXx9~whk>K_>uue38ad41YzFV;aSpQr7h~rU;Y1+4s2jSoq{bLO!$=Gn z-^$>9fvG@ass?FDYZP-hpT`AU6gWe{NGnc8Zni-5ziF*e*;1h8JSqzGv^>zAc+BL= z`i4NY{J+I0kZMwtq`a*gvNPCyD6Ov218HeLxU;d`5y%dFeG1GHI#_jBx($Jo`!SLd zsD&bZ8N>*WASasZ?RDnP$s@@L%!ME#a%5n7!>`)*Pi(a6ut*s<=~wN`QlQ9mkJV9o zBQcV(sqYw?GqA|eLd0S5Epq%8eaNBG8%xYrF7wm|nLN%}AU`|}Eu$w71d`=Si*>ll zQfFJ>+A+Fy?;cmYUEV^zKB*>wF;cMoWKG)}4tqpt%0tU-ngeTFuILJSGEm}GMF#J^ zj(aaN*;*Fp_ z&ii|M*Kv)j!k!;uk5-FW zdXF9=8-{;M*AH+#8ZhAnOoRh|pzDWm^{mF#^Nij%@KF@L;K3Kd@ITS@<2d-+aqvIW z`zCHh;io+KsWAKtx-Q^05-vaIXchOFYO(Yjr^3!J(coqRi*C>-fh-BWC#j`rm()@? z@K?I>)(-?E-7K}47npv=M{mG6VxxM9boCYAEaB5(zznS_D^4fE#3C3mMvU<>M~3ma<^x{ z<$~dMwcW0DYSt~D?^mg6?_Siqu&t2(Y>iQ#7A#>B*7$gWw!a@W;a9zg@++hNr+ZUnmW#+cl@u{@{u=nDzsvqX8O0zf7uUE2*9wq3`2CoWAJO7o+qAf_{}m z|2T<$lF$$FC{91?)6YifrwO`>$4GhlT%%cOuhmQCceoS1oaT(dh9KBh`lTp9|&8nCFt^(R`1Lt6a5(9Q`r0X;iX5r&%Tbp5|GaJ2Weywvqb}3_L_` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumBodyContext.class b/Assignment-2/Java-8/Java8Parser$EnumBodyContext.class new file mode 100644 index 0000000000000000000000000000000000000000..21c35fb555b3605410379cf4756d5996cbbdbaa6 GIT binary patch literal 1520 zcma)5+fEZv6kVrB`in?F(e+U2kPy|s%ddE zjz08Dh{%u-Wf=ARnp`njjpgRfvr5yj`Jv4a-Q{+@xz7!TnS8Zcs5Q-9MKx^QR1W49 zvt`&?gDbYlxl-q5Lo-x;t+~U?65KXFmhGkx)yOiE7+@HnWa}-Rce5|% zYkO38Q%>=R-kui!fh9oBs%#I@rL`g`t@LZwndvDr6-?s-_uyt<~7#W?kLV=}TnYrAu=f z7_Y0OIA!qH=|#ALml^sik5*Tg7={Ij-xr2b0FfVcLMFSjQ#E$@AwxJ{s4~PH3B^z_ z%$;J8GrNvUb(-Ri5hN!$uwkp)`>X0xx9zA9wapgaXtvC4eqR&RX-~hido-}LH*4Io zA2cmmA-QUhv(EH#i`4A6;?~ZP6<-1*qTTFZ111)iXmc{O<3J2F9rVs{ncl_`rY9g; zOqav25q?R}w2O2`#P{4Wos&W6#US(tLSMlYoq~J9In!_T~e_$_6CEmx~;|$qE^2mlKV!`B1&$+DBVJwaQexM zF1W4Bclt4dt1fVX2#5li(lN5nkt`h{TYQUL2qHfv ol3zsf`-CKnIVa0CTz77U8+4CQhCWI#PmT-EZ_=5f`xat<0YOG&%K!iX literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumBodyDeclarationsContext.class b/Assignment-2/Java-8/Java8Parser$EnumBodyDeclarationsContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7be60c7bcc85100c22ae9a1dfeab917ca4b188e5 GIT binary patch literal 1501 zcma)5T~8B16g|_e-F_@k3My?;P!PH;vZyE~MT{cGnnH|icwb=BtZaA9eh~aA{s$lQ z1)~oJU;Pip#6(Rr(SKmPv#qeU1?eVpr!)7SGxwf*Km30C4!|8O$cQkc9_l;#%}2W9 zawmx>PRWQVkP&B?4qZ*ISbp=az4h!K-!yec_YB)|mu<`AyBmS;NJ&b;RMmS;4%<~f{eb?!6`OE=f-Enb$9?4VgTb=U3SY14?;DGK_~&oDrQ zkA0K3uUv+SLiGt{qM5qY&;pdQ+B)$)!_=yV>y-sUTEQSP4E_HiFf4Wh9F<6`S|NTy z9>!@IXB3>p2*Xs*{JX*!VvB}lcuS&ey=&GLQ?97%GI9(P%NBSeTL{VbpfeaH7vg7H#fLb z*EdW$8Kx%d>H~%hfd?udYRZtP84XMKe23z0bvZ0n!Lto9)H@8>yr|nY2Maf%e$(rpuoBX~Z zpwpqeW<^nG4A;2pJ+NJxNTp&?KLqJ=nvQ%g%?`#le@t0O_b4^D_{m_nhzVLJ>EAdc z+5z!m`nI$O=_TzMF3}nj=eduxPGK66z`M> z*%Srk_b{-JL}%b;2#8;xcC2jtc}Jo{}lONA@}TO8dwb-yk1>Ac+Kdw@AKYF!uwR00kSQ@VWnijCF(j gB#>W+AQG+wELU+YunhBLGsGJug6l}o$8ZCQKe+gMA^-pY literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumConstantContext.class b/Assignment-2/Java-8/Java8Parser$EnumConstantContext.class new file mode 100644 index 0000000000000000000000000000000000000000..acb0f429b502edbbb2a1b064663c211c22a96b82 GIT binary patch literal 1903 zcma)6-A)rh7(LS>OWOqs6@Ll{3Tj)BMMY5yC=iV`l^AF=8WXb6p{}%Bv)vke6yL!M zy}{^((OVzNcxJo6(k{_7nQuD#o%8*jncsiD{{XOzRSgk=#1r$qdFPqwG^7(p7fxyD z)}f(CU@Y)y@}b?Vt=8>^YuYZYEB9Q1o{Dr!^<8NTOlJy(Y_aZC3_4UD!j&gRikJ%+`M8)>KMSFK;Ll&frU-hFDm^9RtQ z#@u3yZ`7O4wtQqM>SUmx88r&N7;CcOKCUr|moa3VhB*5#1t6VeuH;yQGKu<2Y6WvGjGxq{nuHEW9z0NgNVGebFwKtkc_H;$)xDbWK!+Pyr%0-%yj~WT7aQ;z$RV!Y6SpMM$mFoBVTd$3%9L?##I;6 zTj)-2^W+w8`+#9ul~Odh`RUNP)%`L*%;S#lI8OrA$ib;!82yOesh=3leZyD;DoDhe zS}RBe1L-%ot4JXR2*39)l8H`|U6NFfNTSGlQ5LZ1S%D?mOVm{t1KdZ9KY<5aQ?$#p JL$oW1{RNdY#0&rc literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumConstantListContext.class b/Assignment-2/Java-8/Java8Parser$EnumConstantListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e691c6f41b7fe0ae123cacc0b5492461b8e5c179 GIT binary patch literal 1603 zcma)6-%ry}6#niC>wXm2#!ojULxy%6QdAIh3xO;eX9gNscr+<+vlP0{v>oAJ@qh3^ zUoiS$@YO%ccy8Be*;u3xy?3|geBU|e`|f`I{{92NE-ErY4Dr|cxxV#Qw;gWF7-3il z9OPeEomRDNIj(NGw7UGljUfzKMnpjrF@~jK;dR65r7%o1x%;kTav#H?JhgsG%$liN zO|5F`j#DmlPdct)Y9hNVs1yZb7-ty2j=)eE1gI72ZM&&at){J=uWNS4a*Y<(y4?l% zJ>-OfBvK4fLTs)XUyb-juy1=E;ei1cC^R@B-sKG)`4YjC?|Sh~62KH<{Z8wM+YSB5 zq?71@(X@28W7B?PAhR;GO5bDU?J`4N=sB#NULeD0_08ViuJBZUft8!bKB%x@D+#t6 zr5%iCP<%(%tP_60AgP5KHSMV)tje%9L~{?!^K^rZ*3*_0VHi7b_2aWW{ewTlh|r~r z7CUHn>|_4Y5YUOhOjb|n9+I{9x#PZS3kxVUi_GF(N-i!%P*{Ix470)0fHTNlVRE~8 zA|R{d0YXse*8;7KR=JpxE;0Iqm>4B&ta+mgc`=_6u#h zjl@K$=?ubY5xRy)enN&;(Ycg(|LJdVx9co@c#J20;3ffxZd0Y7$bQ6F=?dB6H!Or8 zNJ8GUx+FOy(~DRapkPT#-}oQM(jZ8lK$ic3NO8J^LaB3|OabNas*HJ1_n E11%DOy#N3J literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumConstantModifierContext.class b/Assignment-2/Java-8/Java8Parser$EnumConstantModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ac2869d2f37a298b1f9bdeb9949e205580ea096e GIT binary patch literal 1078 zcma)5T~8BH5IwgG-FCZ$Zt(*OejpXQt#N%Y(WJzLG#YCPF+zBDq1R@yy=!*wlKvI{ zgAe+G0TV=h^G6xyZkM`AYvg6_*UULHXXgI;eR>996LlRKhQdqt$bIt44MHC1m|?h) zx~Ogn;Y(L~zG(SE@}V@4g{~uKA`gS%UfTJYhz8^qN>|7&zw5pAc#woK%=Nf@9rgM6 zVx!hMBxz4~- z$ZmMTlTR7$*Dg!dw)b?D85UBdcDzt>!Gi)UTrqJK*BF*K2^37zAZANNSEo58x-{)Q z1-fWrNr5i%p(m%gGZ^l;Hw>#ayOU;^=v$Lvrsa1z!+ggRd^;NK^I+HA@6(N$w5Bb( ze8`~H>^4I_E=Ot3@bDjE$$%%#*`?iuC{zMNaYwob@3!3c2}e#9GD0(U{3tl!&picQ zN@e}vkmi9Qx6MQO!Ve{7))u64JRCe^uqMi4Se~X%A|_U8T1^^uU=|D&ER$WK(;76| z0fl;5(~dEF4($^iY52)z)l=n|EX@|#ivW$@^m=3E3ksjd&IU5%e1dG{lw5D(RuZ6? z6oXcJ^KtAvLjFn*w<)y|@?!!Z2$UP&VSPZcaSp3~f`tqeNhZ!{L~;hJ@(p(sD40dz nYySheJ_+)JKz{xO(NK+9?qWS&=||IACSD~_jXt@`*+%{koLLAK literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EnumConstantNameContext.class b/Assignment-2/Java-8/Java8Parser$EnumConstantNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e81cbb7db644e5def38c63a62fa17af46d169f32 GIT binary patch literal 980 zcma)4U2hUW6g|UI7M4Yz1?xxssMNZE5g$x6!I&7LaSf8jlD==tZL=0;&Fs+dKYa2( z_@FNueK7j!k22m_uqCC9KJ1;@nRCy%_ssqE``dQ_PjSaaN+AC-I0_zZ1u7=xAdMv( z85cIP0=2oTjc0N^>O?Zufz-WVM7-BD(E`~6(*5X=q`+Oz_v_tA9kduURIQ^2Ej5-p z98pUvqE?^OD3rml7Y(TGz(L-I>!N@Q0-I;1P3w9+9-ioB9)~j2PmJ2xQVTh4zrJIm zB(O5qP&bScstX`nr^0S&UQ3bd-Oas)TKFN?!Dnr;(_Q1!46Uk&LiWw3|+&uS;88xhCW@!yAQ|cDRqHwuH(iG`H&fy z1Ix{yD85Ib`2)qqSCmsQDygKTsY(fDugrzRlwRia^?#967fC8iQavHDa4S)%VIx@u OZu9Ced78gX&CfThT}>n zjRbZj(V-!UPJz+D*7%&&Si2^d>xN@^rftpImM1qnfzDOwE!hvHC2+V|wcrt6VsZ>WfijYrZkSvhCLSeEVK|(K*zLcncj>l ze00^@a#*ChNgNR94V+$Sm6mk6FoY2e2QezJM=Ft_o(oJCs)58EJW(#*RZ!y^CKOb! z+%Ua1q{Q69oq2&$;lB+dkeH=$*o>-a$%V$+ed#P2_v>6qS8CMjH;;ytbgJ@^z%bFn zdIJtC3v|=auKTC+0y$IC zxpE4pTL}Z46+=9G@55Gbv!1WGaRz5wfoBPzwCARNVCX%%r@mvT^aaB)D3X}phbGBu z^yJ^*oC1aDVfy)hfsD0-yd}uHzaVj3@L9^3_Gf{MoJZ-D1PNx4;!ofb#|-DooclOm GLFzY(B)V$= literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$EqualityExpressionContext.class b/Assignment-2/Java-8/Java8Parser$EqualityExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..2fcfcb39e436498061373d89169dfc76dcd2d42d GIT binary patch literal 1447 zcma)6T~E|N6g{(r?Xp{Bcli=QMdf3=i`1_~lO-k_g0ZHe!peJr38|D8+gV(UnrNc` z!T;cczG(Ep;H&?^zhb=8Ex1w^dFgbf=bU@*xp(^W_qXo=YPhZ<#gMya@7T8<+Cj(z z61hHHBp#=L8XVb#O9zTsHjDMos&i$1rHowzW)7+hUGwB4L!ae%e6g{$%7ePS>e5M(CkBB*Kct;ZYrh7D?uAE> zYnCj#!$>6CNrSNXpdRzIc-l;Foi`bjl5R5eMDEHlVz|}&{T`94486<3 zUfaBHZ^uPuq_-`#?6Tho*7zMqO6S`eH7iG4X2wHt*AE4QW_r~0Xx@3qFnWx`3?m&q z!UehkdAiR)1`OwLo}S~hy99;afLyt#D4)^22jwGe84*Af`cxD2yhy+VA>AUR4-=jd zbOMtxVLXnIDd$Zh%#%MRp%@EqN5xmZ;}FOpji2V!T0E`>|wC{6~igWD5=PwR+QH$ x)ZU;%r(|V;=rjKl8BL13C6RZ3MHF0)qRhgGR+>OsixgM3>nifgc5Pch$IEkG$AH_ghpwP6~NvSy?fs_gfMIeIG3bj%0Zn}zGQYW%ERro1f zk&plZq8vbQK;_DhLd+&kaMB`r+40&l@4b1m>tDaW{{Zk1wu%^o_S89Y?mu(y(_eBbEs45aVl1MQuM{^(bo4hOBju**im~C;f(`%0a7>? z0a4m*$7|UG{BqT*b^Mm?c%tpwM|W+%=Lz?a+e1~6>aq%*;d+!+k~JLPb@s*_Da>L{ zMMg&!Ifk|KVKc-xUC$K{7}m}6>Zw`{74r=Fh@_eu2<~xTLmq~XOSsIC<7A&d;Sj^B zS&NhvCccJ#m#v0`S~n^>n(OiH-r*ki z>(V*~T|}H@Seb%4!)HR%!|7JNecoqKOsh(Y2F=Q`G2HowmBQ!YeCzZyvW(hgNbd@# z`FzXihQboE=^7fzsjqAi`#Fcrot+AR~nsRC_S zpiLLNrc^q(kphLl)M9DrE7Hef^b}%%@dk0@Ev4QhDMN-uic*r2*?B)sma1XAqqTrl zTBY`T1V9kTm3|`s66w+j^2Kks7=t8<4O$qId_dOth&6gk-Dau$*8f1RoCY~2kk5ZX f6qo}R3&lZXC{bJ>2I=TJ{a>W!+Y~j58%X{E;U^*$ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ExceptionTypeListContext.class b/Assignment-2/Java-8/Java8Parser$ExceptionTypeListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9a35ee4bac042fdd4e99cdf26d762d0f8125e15d GIT binary patch literal 1613 zcma)6T~pIg5IwhnrXMMk0u==W1vG7updz5{Ffbh*>lFN;!+U@`oj{sknlkmL_#b@G z7aV)Zo1t)XLrxJ{qy(dF916z$OtjS-{|N1<~!Y~b4SJy!+apH z__BG#&s@W{Dxc1H(Y9RPbYloZmJv}9MT}u_V1C)CyM7JBXqCGk8fF`$&aj}CPl#JH zb*risO}$>vXIhblYnYm-&I>L@K>{NTBb^8gg z0{k9wQo$Hf3{gU^*r(j0uEtfu@cQcPVnV?r(hQMyF2k}~8pP*1oNE>C)C@~E_v~X% zd{ekB-q(973xgZ=otNLrGb{;F2aeRvWEd{K-QC?0&gyQl(0}>8It#j- zpzAAeZ$5+K`?_Qu^Cp9&W=b@+r;RWy!|DL#JuuJN6|!4fVN!)5vG3|fr@Q)@zr~2q zriB*Uw;Rq8e`N^hWMC;PCv+Rh;CsC8zP5!Al#)f3@vbJPt1;0b?$ynn>Iet?K`slE z>%}JmvOFFl1eLzc(aGqPvnlBU!(Zu@Oh?bK2&WH`rS}kWUePi=MbQEziUDydn!Z5% z5>j^|r_@J%Sd!Zp80}83`YbD6k><0^`z(=ca+_GjyQ>V!qYLb3i=HIvNzUeGzT?(6 zdTk976RoCAgwr*Otm3g>FioeJTuQ$Ga+Tbg+M*wx;HjUuK>%XfRPHxsKO>R5#BBBl z=0Xr8A#YnPl8+cmJ6IE-U}IGN>^hKzUXTWXoc{-ru(~lxgQ?)usS~>mC>j$@Mhs-ZI5W|}g4YG!kV(-l$Bo6^vn=Fm*a#-tqRkvSJr&mqJj%P?S$wWUTi&K zSdX@uP*y8{$;3@ToiNbg2nnMt!xGD#ops@~^>veX3L@V9^fBI8JBRiOgN?TIMpv;JW7U@i;SyKlQ5J8N3p>R`%+OBjz!l~DXwD7efspXIL? zkU_YJOMETy(^W`(2V|;wNqU9BeMm3(kr)7m@T-N7e7(YjeSl;SkUS3f#HD3i3jw82 zAyv&jVL;}1^=Gc*Zzw`9v9w&R6<=fY<&l>(671yw$%QXmI)&>YpvbF#fPowio*z~B zoPXsvDk@>+ZDwE&S64ZxO~?00000 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ExplicitConstructorInvocationContext.class b/Assignment-2/Java-8/Java8Parser$ExplicitConstructorInvocationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..3cbbbf26979a3db91299e68b46407441bf319e63 GIT binary patch literal 2065 zcma)6X>SuT6dX5gwrSIwqfm~Pa-<0m?kj~7N)bUJR88OupO#=%3(0Qf-BjhL@E;I| zkhp{phXfM*C&V~O!!|Lriex+9dGp>IkNxxahfe^qxNf0Kp#PS=YF}8il`mBvy3u1H z8i$2mffJ!m2N%{>Do)u6<~`RBRIMC%D(9|xWjk;@mz#lH3j}(XWl-`SOIP4%BA1)V zdulmtyFo>zSI?wX%?+HYOb1HJbV;hJ@UM{FfsvEAkLe8u+t%)jzCx(!7$|FFRRaQ^k&dB@j1>-H>+ z3QUDT6h%qjrve4Lx?YNfZ34T)utnumZS|zp#SZMWFdoM)>=rm|l&GUbf#|H`I>8mK ztXbBM7z%LD!XAOKP&K+C=}Og)3G9nwKPCkZP-Ln8d&B}~6ZsI$mJE@Zxu??{h+|r( znUZTxut}Eg(#>2^Aeq>*cLciU=^=rkyyMD3t@=Q!lKr5xUfXW$_;K2IMfzybQ1|8*YA`B ztd)j~1opMXZM2szvw1gi?nAl8_{0obj@8dto1QoO9}cQt%({(AyrSz);VDwFVqlja z-?mqp()Q}JY_Rney_zb^8;+(P4#{}@5icYkg@W{ho1RuIo^xrv`t6iHW&f`kT336U z={V?WgWdw$jWSaHjWS`1kI4=`guozJ2@Y{Q%zu-Ja0T=xhf|R^h`i)l;0VX4-XDL? zF=0YqG@)M*J!3*&GNE4*oiw56Oz2lcr*M>`u6w#!cYks;Ms)vY#M(=LP3SQk?+h4f z1PrwYydgAgswZKp=N-`}aI%wrq(MK@PXB?>QzrVXiT)$er*Wo}eyl-1)=vM4P(HDt zfCzQ6lBqp!vHex+So_e$WBr2Y_*X*D;#@Oeg0nV4WcdEG7P#SoZ~Sl`7n;EHBp?Mw zQ(rLg6a%Txm`J|I-Y)1QU3Kp?l6=R=_zzsvq!1$vzqA?2R42(#lKlEh5<#Y(Wfqs~ hv%nS3N%YX)0&|G*CvcVH5a%pso%kB(G0yXd{Q=mi;FJIW literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ExpressionContext.class b/Assignment-2/Java-8/Java8Parser$ExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1ecd282142749b90c8ec22bc824a7335e3c0adfe GIT binary patch literal 1254 zcma)6%Wl&^6g@W%aUM>ZN1@QBJlfFaQEC=QAf-X7A`n5LLbU4MX-1KYV^{X1M1mjT zA6UQ!1PfHQEchhEbz&NmD5aaZGvj;CJ#+4ifBydV9l$Ph6%j(}xp8VddTF?xa8*PJ z>!FQO+vs zmSOkwre%0uy;W&DZcjICX}S981Kl0i((DU;tSp4CtI!CW;gY+ot!MXzEoX`+k->tB ztcD!&gpJG9AjEb|+mw$9Tjk5@YE=$ZED{PKX>HS!!WM1{1zgjxgzJO_)+yYHQo>rf z9m13*p8~_`l|!FkS;LA?kP$;ObW%drnrajKQ?C5OIj50zLbU001*>YCw%8l=JHkCM zIu`FNa$9C>CDf*vFEF3kwV?GayDNqSrCezd5+euvo)YfQ@mIPcX#N4u{`$yH5Yqe7 zIC}lUI0=NteLu!*$$e+w9*L)>Pn`{!x_!*|jS$}xo_ywbl9jb=Zp`TN36HQe$00&) zrXPfr3r>wY{5mrH#K4hI#43+Bd9@COXF#f&SCr4Vat7riFA2ATR5UDJ-DZLrKxzy~ zO#>WG<(nM>C`_hSYsD`}e>!JRA_6pA#2Ox_uCbJHg(62^QZ$EOAI`IV*=R@}OSsFU zFa9AjFbDFrA1J&>x^{*_^((GM;8%%^&M>a>2D!!%8@$WM%`trQek4FPcRf3E=FH65U%$Wq0MNh#88L>`OXJXZylDuB3l(u( zl9A9LLt$7BU6r0q4g_}`)3!Rsm^W?9ZjuDgPBy~oAaw2V>59`L#hm7y3;&=~j4p=Wze2;V29X-H#^VU99wd83om8|C&M zao0zNHPo9U!*S{t<)4-pimt23AS)xMVF8N_tC6(Ng)t;HOv`ki_|-<2dM<`YZOgdK zun?-YZ8|QuxJV(7s~WE1I^A>XsW{zdVpeX4;-be;uWb831r0ZRpd6o=?pYkQH6VO* z*W`ksTK?}rF~plRFoyZIY4MIX?sL&I`XjQWjqu1AN`xBb8a2^6gY@)uk3pM_vtQr9{`2D}fM;0IkzmNYwvX(`Z*9-#o{l8L z;@CmCBW=n1T*!^#p~rpSaYe%wk`HAX6VP>}3``<@iZueq{D{Rcwa?|dL664=Yt`0! zvS9UWv2Qhcw(qYtYc1E?w`?JMo^|xl@&-aWeQt#=$JndNg<&9zDTWj&cijUn7?!Hd zi!`Lixz*)f-w}4N?e1~X$RV$zU|6YKCIx#(K6J3`R5|O|i#^3|h5D z3X?%1s`U&j7vvp?1vAp6CZFU=IWT0&{_eq+eHi&lsWd{hbjKZdyZoi2q;q50E~~Mm zv1)T)Zo0lCXH7wk3TBl14D%OfLN7--#jq$a+@Yz>(KiTM8E)Y=JxjE^2aSFK8MB~i zUvcFa+GpA_B7{&>)@gT_fFYq25mILE2@x`<(N76SLmi=&yhcj8Szq{u=`XQ#8VR8C z921oWLCdH_gaulapJW~%KE-I|8I>3GT*Q5PmgvnRQXmZ!>c3F@h;02BMe{pm6HrwW z!3Dx9uaK{7qDrT9*F4c{{}Z`!R^$zdv_>Kt%%DmgOTo(UfYt)lRe3JcKa}!pVe&8K Ck~@_E literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ExtendsInterfacesContext.class b/Assignment-2/Java-8/Java8Parser$ExtendsInterfacesContext.class new file mode 100644 index 0000000000000000000000000000000000000000..208f9ab717cf93f3d4eadafe90f33b111720a8f1 GIT binary patch literal 1260 zcma)5U2oD*7=8{#%10SrvY}K(hqJ(3cVVIli-|#u7)FdVi?}su6r9E~Ax@mhuM?Zh0 zI}_WpMqKwC&UJ%3Bg;02opGPnWyCM#Sdts>&v@H%y?G8%m!cqv4TcTM_GU8V%k&3Y z`-EE1ho(Ky8$;7|>+5Qmbs0d{<47YTBdZ{X>kKB>%fUX@#y>cYzR0X#LU7k-Z?+P}#`POK5 zo_86l+JBFXA>5$RF{Ij-%{!CPF?S5}ct|%HYvGK=@E9~=4wk%bzI6s=KGv4q=Tinr ztF#zmz7%3!4Et+@_I>56ZIHtjf|3Xf$*yPiP7lqqd5KXW#f&Z99Z#Gde_;vgbfCt) z6Y>&yy2D-X<=7>AD=nKQkoIyz-jvFfCw0F;|{GQdMiPq6A-PY zGtw7GpXkgedKL#YNpJVCO>2qnw&&4_YBomEi3`Lo15y-9P7VMh0?O5z`W30qbeyrr z5dzdKB5ICq%D6uV6loXrNNN6Y87xYMDmZuWfYuUyc}xUEfo$z3@*j|_T_9imhOH1p zl91oREXfu!Y5^MEQmYw)SN=s(TqP+IiTamBLe+$GJfuBKdBc=o4>5Webj1Du D{%0_( literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$FieldAccessContext.class b/Assignment-2/Java-8/Java8Parser$FieldAccessContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0fdfb445c92be29fc44b7009bae61b9b2be39589 GIT binary patch literal 1692 zcma)7T~pIQ6g}HQQ`!LiP*jQnf|#~I5V4@GI1I{Ir&fkm-b1@|B5BGbDFZ*n|KNkZ z;OLAFzWSpa@1_MqT1H;>CcEdJ`*H3jzyEyy319;+Bm@|uZ?q$AZCkT!Zb=wm824<< zZd-a&vraZ!ro)e&2ttq~gk=mN!f?-v+|s#G->B8NZFkWOBMt8Cv<-f-QBX=BD4c3& zW<%XHG~3P>)1{WxP&LyrEcIwbwc4hmH@Vu$$m5+C(PbIK7-1M9=4$JJn>IsIAr60Gz=VtQA?1l8(EM-<9UZbgy8JsFdjVu*1P%JOKz zFr$<_PP3k~t}OZVuAsOtV@6Pn@?+icpctgX&J>X1O8OGn4Ab+1yq-8~Kn3~hJ2v+C;6#BQQSFUvmpB1CfSB73ZL!?-zcIo>% zw-_=M`P!a?mG|4Pc4)Mm?nE$5`dZ_g6-rL--iD%C=f~6$C0(TAUBSedGb~*(4sP!5 zeW=oqp36?MF$`B6t#fi+!3r{T7(mu_nx|DnnW88GvSD&conqAQl_A^$ z7CmSYg3$YvQx96Os{PPPKlB2jm++{|?Ws4}sW<6QMkOeHGdvDKN=C|LC%)q57kcb8 zCn74!EhChBOgqaEtEhE?tjK;Kjvt>c(4AJU(8&s(bdjsXAi9#s{zB>_hO=i#WxnBV z03u4jm7o)474h5}a20%xp&7gEHnT&68a2^G ze}n(Q3%$|kMWeU=DB~HxO46-*u`~N|&U5B{&)FY8zwQBOplBk-kiPHky0;#>GUU=i z97jwfY?w$glx99HtqAV*8r?1r!ws*$u_ML6l~0<1ulPtYB)7Qg1l!zaxK?zWQY(;K zRo7RZtnS{Z%Av2sfLE2|yxQS%Abi(r2R&Z5U?FY7wvoY6hAWY2lhZvKdVIfL;`>c&J4KopGHc51Zm+sK(}GE@Y(lfvf}!m46`|3& z8LO5b)1c9yw0WrR1tHCh?f7JU({sa+hYX9+)=XQD3pAV-4K9!X!zrAmb%CDF!=O7L zSJop+LJnOgxXh_xsWMz^J{X^&A~{g1$)vVqmWF9ocutRK6iw{(^iAx=L&;U{d83 s^0n6_A6jUh(l7oCa{M6V4ME=iffyuBS6Ra4@lJmp?H0k~bX`U27i=x{_W%F@ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$FieldAccess_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$FieldAccess_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bb6bf8489d5d7894553f5a345aa032b9de0b4b14 GIT binary patch literal 1608 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$FloatingPointTypeContext.class b/Assignment-2/Java-8/Java8Parser$FloatingPointTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..6074f87db69d12b1b5639dae6497d5884372b096 GIT binary patch literal 1033 zcma)5O>fgc5PfT>apE{l`U#XmX&c&nAi@C&q#&dch%j=~ikjZtb`_aA>uSBJ!cXBp zaDWR44hXLND8y_M+DJ(S2k)%cZ{Ey%JO1_i+jjsvC|fWXa<78(;PHMS6E1C}Fk>O@ zz(R(hH1?^~isC?pqO%`|Liz8`crzA?_Z35?!<8SOa=~z~?79^%mYsSaR3z)?59_ig zRM_QpB{{GATy{edMD6&5H*DC*S#TWWG0U(uHEr0~>t1wOFa0DGp?a#TO)oW(({L+? z7K#iDV~V^mQCx7DLjm&+7O=>$%t@1+kjhXgdt<3rn$f5nYPw|y*EHP{?}us%+f2*b z+wmEy<^MK|A=M<)7z$n}c)Qm<;?fU}B05Pw-+S}Sd%@t)MQEp7al-oyX1U@rWCxP; zF~fr^3>)0dz%`$4>8~*)h9Q5Tg5%TO;A~VZqa_X5?1Q)`k9jN9)WtD-?!TpxqPb}E zM7@j?8WG18rU_>1}lydUhImjnFi6v}*26;x;K-)!OP8WItU{+b{rQ9cg2Optqol=!6xDx*5az zaDmnB!q}vBjhY?e9#K9qV7~Sfh4;wUexOkOia7(ihB0V=SYwM0w@Ey-%sEQm_!r62 eBuSM>YL_G?3DZ?dxI2jShf%bNJVnnovVQ=4R^%`M literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ForInitContext.class b/Assignment-2/Java-8/Java8Parser$ForInitContext.class new file mode 100644 index 0000000000000000000000000000000000000000..6f8ebbda8bcf6b765b453bde036a24f9506f25d9 GIT binary patch literal 1283 zcma)6TW=CU6#j-qwy;YJ#oiF>4J$0Q>w}3VG$saZ#9(7=!~2v@$kt`InH?Jbit#V_ zpf4JIF!j|RWjq5Em)2fh_UvrtyUcga&hI}zegb$7*F=KBdd-jc)3;nkLYhc2II$1q z9mSRCi9o#^97+*IUKq5zNHxMhiGj)>1=GZgjWjY0#W->+l+D09*~u{573y8z7h@>H zW~FsN(yq^guG{c=6xEy6Rw%nJ50o$6qsOl72g>UScjPXHuA8tKYH__**x`PgOONmQ z;)Uq=TyjNrCst=MXCh}Kk9mf*tLZSLHa$AUGluobRlPN+G!Y1Cp@2mj zOIT*GDOMrJIWgR-v|@nrbbj?}TSJRBZfK|_2A-NAm!ki7iD9Esog%%soppv}Bit7Z zb1g3r+x_02kh?lhhGqYpd>PzRBA0Z6RP6CAG=qIHU@$7xCPR7{hi)>%qjSPmQjDiz zm)=f7rEnOsbhgg>H~esHct%GwV$1A=ec2IPo~F*lLf$x_0c4oj7Lj@tMv9y@1M1Rn z8b!pgdU0Sh)zfXFE?#na+@XJFmi|9bWhmh$Jy&UU4+gyfmNRb{Uvcdi#%Ed*<9I8a z46SYx!5M%x0$8U3S=vhD9s?LeW;(UfH)Ov|*fU4~P7Wz2Ph0Pjm61Y;sKJ0bGsGeb+ z*Y}9o>{w3QtadEluhfjX>$OeGksZ(6zixUxN7`Ls4#kD4D=Kt`l`!dD=aJj zw;{Y8tI?s8c`?OahVlgT5ltX;eKZ0!rzQFf3O8yDiGdSAZyB!5@L76dGz2^J^~X~R zWf3(t?Du$tEz|>N?@EWO?WAr2<0RM~_|3aykNXn3*KrxUM&Eo0vadsdZ z{41?RT%k1(e}fPR1G(~hmwx~JvQ^ys?n~Gx#-WM?}K$a1SBZ?S<8U#l$8GDTEjq4#zOTDITUcGL5A6ofWf^gX2SN4c_Ni$%d25=B z7?N0&k%}XY48!((VhjrhmTieA3_I$)1`X{*#!ZH7z+=_&1h=`XAd96qma)Q+qat&6 zqG{@lS`EMp6SGG3ENdq|Z7z;ApLUh^Eio~lBpcUunc<c;R@0oEbLtcQDM{ zW7wKmJ%;?mE{$JFVV;^`i=JhYUO6ZdCDv)ZO}o30=nGJa8AiO*y97(#%ygavJxQtyzJp+cUbZz-I{`;X&n z-!`-rS_`;Gt8e}hF%SnbrJu-tK%#VkZ1Edzh2X1%26q^$tRb!Cu}!CR-88}P&mvj9 mO0q#DoBv28r~?%Z#X)2!QOuEoU(y}=|M{MGDJm5A5d8!GVPe_< literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ForUpdateContext.class b/Assignment-2/Java-8/Java8Parser$ForUpdateContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4eb74b84f02645fd23f89a25065a8db40946476f GIT binary patch literal 1076 zcma)5O>fgc5Pch`aXy^3NrCba3Z1EbCGw;pJ+wqT|U%vr(2wO*np|tHCdiP&=BH}_vmcdRr z>O0bte8>a2H5myWMSd8#ek5CAAo)ZVk%O)yZ=ir8LoJPLhvLA0pHhJbT$E73IRoc$fd(X#q5VLAG{_zWAS^&9c&uheA7w!$7~SaAJ-cgMqhE_S{B0eOu0O*%o3 zPZ%`Q>M#_hb11PH?)*a~DR}%UyYzLe22DhBP&)^2o_V9VMqbS|V=L~2V{yRSzM@`C zX|tggfg#`Jk$e(Hk~-@IB=2-9c*L-B`i#VuC>N`XRoYI2HXWD)!)06{Tcg_=H2MNc zc2(0pVeSap2f8v`C7V+r`w>}ME3(G`jbggpsC`E1W0G7%hLX3Cv)h!qf@?9LMyINf zt>E4JBzs2vm?GDyw;A<4VjvDw8{biRi*n-#75fX8GEh}A)0SpcwkhxwH^@ufR|vlL mKa%A?NxDSx{Dee9eOl!v)~6@KEjp`IS1DxDU#)t!Q1}IMYXmj` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$FormalParameterContext.class b/Assignment-2/Java-8/Java8Parser$FormalParameterContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ec33d2b6dca1e2a406e7afb81720948fe2c37758 GIT binary patch literal 1648 zcma)7T~pIQ6g}Hu(@!Za<-?*NAfzo4R1~lbGY$@8ox(VRya&2=f@#8}TLyoM|G@`+ z!O;f?U;R;zchdwy0HqImH`#m7J@=lw>F+;3egb%bnu-`h`n7RnEWa__4tG`bF^q*? zOuw@Y+ur$j$k!cP@MDoe9IA>$21%qCCd0lPj@vdYLNeN1aMzDuxZUF7ZPyAQ7*@5$ z0VUNf!*1#8meJ|d>g9&xwsgZ5ma88v>TcH-W}E9hUZH3rone>_=iN12)7Z24OTKSW za^bl3rk`BJZHB3clRp7^_hG4!oFO-}u7m^R<)w)eQZ zBXuL9M^{M5P>n$TLuf+J1t5X640!@Lkdt;U6OrCFTecy(E+t;McJ6(65ZXo57IS;vMnI=?G$0w`pj+JIHC!b5Ye8h9at;UF%X% z?-losVK_LAw2sCpPB%sV5}*$Vrf8j}rzt431JaeeqMYE?DU>ht$nb#HxI8M#bq2Gv zMgr2kfOIqrcEHQddw6Z0SRyG>gPp)+5 zLjj7Hr8@Qvg|D>j)sP}=6!VA|3-sn8=KX*YSxHODH9ns?_X-}Q104&#;}QW#D*5U! zjDAA4dWzA?ca&m~Nn&23dP#;cP#nP{2?{nq;gA0ZGJYAPL?C15APSy%Sr+lsvkcG3 ZPNL7#ZHfL5B z2Yu1e2M1sMQI2<$P(z@~%Wjjs=iGD8y_^2}{rv}kH9S)hV@PcnC&tQaLpWTh=wZl( zUgWmTEi8xdh2@QQnGR%fC>$Yea%?_ewI&Oes7-(>JyWQlS z7pwW&5ed+nhSkt3O~Y}@)k4h{4c)NZrqEB8bkVk4v&D5^V+dVVp)t(-BexThJD_0@ zX@&$zsN2WfVwlfYyCri4=X#xsmT4KyE&G5|vY|+!HN$Zu#dh*#aYMyT4I>yO)b;9N zh_9NK={}druIoXyu&ZL6VK`)iw47U9q%ej_4YzQcVU$zjL`1F(WGLlpA#m=Bn4qk3 zVOLU4X}BvXNBF53HNa=gi0IrfLA$J2 zNpF1Y1pAdX=wJbQ5V%YPM1i5wPmFy)f9VWk#c!C1K_-cL4*5xrkjWlnQIdjX2>#%I uBzG>8SVUs~B~kFu%kl_I-p=rt_G$EZc0Qqh0;zeK_7v?aw9CX#(f0?b{hi7H literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$FormalParametersContext.class b/Assignment-2/Java-8/Java8Parser$FormalParametersContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bd00712c1534398cb63c699aa89815ce4bad87f4 GIT binary patch literal 1807 zcma)6TTc@~7(LTMx0glQQYZpiZbC1}qN1R!2x&sB7BtZCzQEWlv|F>?68?&>CdQbM z2#KQjVDQx+W&CEl#db@Pm(FzdJLi0tGxPh;kDmZmup+_55O|>;sEe;vqsk2lT@2$* z2a~H6qpX(bt6JtJH?kGo2O))tW^_Mn47^yp33fnRu>~o@sEd6u42=bhWfz z+2v^ogA9|+t=ix_Tsz=KdwYj4EMY{(E!<|9x?VvHo{Xkz=90+kx=qL>wj_*F(M@@Y zzH^-$0mLvaV*-;5{hS7GINU(ZipTR!NT*#I!%ru+1lg2~X+aj@hnm^W)%&K^Yz*Oe z+awseveZqoQ(n{gdab<8je@#eq7&byR@7CqX3&1I4Vk$rQQMR0r8L8|nEw?;HDVdM zv#-|HR)h_mX=X0(f4eD!U`hyHI^*_uhLGWOjhI4f#+{5sVzPaQa{4YmWN^n5IqIA> zU2!=W<~n%C%Eh`x1+sR-BQ#lto=sET*>k~G zx=ic5YCf-2P0B2%lj*EyfRnQZ90s{~N1~1o4U;hpcB&g=^ok78qX&Ahs9i|Fg(Urp z(aLC*l418Lx{ql~^PpdkIF7u>4DDUGYk_9zSAZtqrZXTwpy5*l&f#_fKTxQ0iAr$! z6ur*ikG9I31-fUejM^&RWN?{O`kbgw6n7sF>}ZjbD1>r~QYDmA)CoAE0D4cF0B!h>(E%F(j$T6MFwS7TR61yCwY&egeOP z5Bj3f2ZOJEDC3-VSvTxfO_OuBXJ>vh=RY(1^VhfU0Cw;)1Rq1}jeIR{?8~~r^(X?k z7eX+O5W)<3$Ezjjv~|waTHD}FQ#N^rtLCnzn!IN+gwMFy(k{8muw0O&VqMeEDza*} z^~&{HMenMn(%}_T=e*M5dPh;^c0)Vi)exc#v(6~B-j&V`L(xeoek-!MU2!%Q5 zwz(a5yHLNN>?>_qJ*(`tWy7cr3qH7@!<&MSGCXt!w=dSvn&+BsN~cz&5Yh};Pg6V1 zaoi7KB92K+k#e2_xN=|!ZY!!{z7o25i{|p78y+<#SGgWT2H7}f@ql59 zD#UeDXgr41Aw}*_M!(W6nvvULlK2b>O7r;gt$byv z6BZ>H(4tMPs~__{MW9C=;;dZIP|#F1xM9B53>wh5q*8bECxjae(;hXnhbrZgmLW4# zEQ)Nuvk=rP0gTfp28e-S0gJRQ(Z3x0^aO-UqZ9tm@PDLd8bMlv;yfRwHScA;>17=u z>qjWiD%gt_J61|Z$U1g|$X&chrs##=^1>&`x`eVDpB&(mckxLwUG~BY2iILwWc?T` zZhUHhPu<0jktuy!91ecEcBoX&e!N(J9qcTxjiIkU2MGjv%=| m5I>&xqrAX+e`naBeStbEKmj%pp&!E*twQfA?IQ3tBEJD=CXd(v literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$IfThenElseStatementNoShortIfContext.class b/Assignment-2/Java-8/Java8Parser$IfThenElseStatementNoShortIfContext.class new file mode 100644 index 0000000000000000000000000000000000000000..15d0adf183c9df446abf826ba007ca09d787306c GIT binary patch literal 1854 zcma)6+fEZv6kVsqUI$ByqEHYJsJ$SAigIbi5K?rsG^DL0nrJe>0S3wpnVFJ)gg@Xv z_@FNseK7dyM;Z5-78q!Yq{%tcGkdSK_TKBvpT9qU0a(HdKRgWK*Xofvx2BpFH$&*c z4L^Jm{0K0}u2YUyla@Yvb}8RHm}Oc2b!){i^dku`VnFna?|DOhbFfy&Cr|RLYpL^ z8#ftl5>2UA)Z?@j(ZY@F~TrPqvYmQ^JSPx7F;OTF+(=BE=cZ67!xETysnW`I(vx0qpUEb zlh-y4L)S8yhbB?bbY83-Y;d!pZdB>SS6Evr<%UW1yqo*0>S42;0WrJ=TBvN)%uT+c3Fsb| z)+x~!`T`WWWxp~k`WQ%xPEK=fBNw;hs_CEI!K82UT50i$#w`{-*1guyV530f2M zZv-wZ*)Dp%UGz(eP9aUJz#eO2htshjMTbuiybP~U zXr>+fLOb|36g`QD@Hp_pvBO$Iwwt$xT7g@IdP3b zAGOmIX{V_~(e#CK!FwG|nZfV4{f!h kkdNmeUd%Zx^H^|py1}#$5JMLcybo~1f%XiUnUa2kf8am( zpf4JIF!<`D#uyVd(L_JPxMy1GWTr%4&Y8>JYwf+(-tT_Degj|`ixNT%$@|)oc57WT zEp8?d!5Ilr84_X)mp#9x)Q7c4Tx{B!%^O_UD~7On%Vvn}al2+5aKSK}SJgtrF!vNq z*mYAmT2RcUu=NI4Y?E`P#?6KxKl`x{FjgFy*HGR|U{VY+8m0bqvc zk}h=nt|LZoB?38A_LhWm41=C}D!OHJ!ObK_Fe>8$vJ68cJ2!nkFwEpDp2SmpDi^jK zsEaZ#IZ%VVrP~3dkh;cD%>TEA43QPGk|9;m1+O+6+uW>a+jaU9t*kF^tX3Hkyz45% z1Yvt?4LDw=%#BWF+&Y;xhH+n_-!00MI|HJMUEX2{=L;%B+?C96o?-qJL)_7HU8&KK zo(NBZG4v77&cOriu+vq{k*$rE*fg5v4qww9=mAetbNe)vv=&uv+4l^KHbhnhIq8ll zw-|t!x70!p?u!LMe+brLa&i%j~eI?=3l&<^>WGo2slR$p`1qox`Wx0xL a?#*zW?onch5Wxaj?wEdq&J^7@5&r|%eOVy@ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ImportDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$ImportDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a97210c526ba5740c3292fe7b1e2a447a6efd479 GIT binary patch literal 1850 zcma)7ZBNrs6n^dsbgvACyeJ@w6W0wXA_8W_#6XNQ6O9nQmvOTcyOy+f1b>SE!4LXH zqaO^$#6)AFCYtDFLXPp7Wf0o_qV{@4NQ^?&7wL7(?oTcA%|1)@+B{ zGI|*10x$BLx>+~)*0X(HY3y6JSm!lEvo)bx=9*;+ekhXYgDfMSMgmEOd=T9Y!_Z&n z;z`rsJ_*BWp}I#xR6{fC>YAZBPPw8~ExWF2rZ8;vU{ST3rqCN)^|S`iWf^IP`C#P} z#gEK&-q6h5uyPsw9VoBcO+o$Dx@ng&z_1Xk70mBmEr}e4WSmQ57$Xcb(OP5ZTh&cn z++mn4L|u-GvMpnbVJM)osyl+4+)iN>7t$EV1j7iY3EH7X8I(db0L_Oo{Hc|dZI|w1 z8dEOaFhA5qD3@W}>24xg%7XG=v9ldlX6RY7b~!_~s+)YH+1TOsmbPQin@Q2O>M5gO zSnQ}4#V1s6(rY0&>42ZYv{8&iv{O#NYNzU5>d+fha0=jfFbrvbgH_C3e#jsdlnO(l zHE?(5kny|NN!Z-qVq0`~Y#SOiLx!r?o<7v}{l$*E1NYdHn^x1V@q4;UJrFR@+#c;} zhWG||#C^*Vq^x3+4_jNDI}Foj51e5vWUKbUk&iM$I+vo1gtle01;%AM^>TEI0&y^0 zqG#%ao~}TmJ0MleNz!Zd9zl9ZkBmNmAoMBmk*;}MrE3Qux=tSqx+c1!vLOpH+z zP4vP4;Df$s^uge(Kfxbkyt7@f(xvjUvpaLox#ymHXMg_w_8q`o+|ZF=$UL<7?AwoR z>2s;0kD=7DF|pX%aGSof$Cu?|YgcmLcRaD+iGa6)G?LJDqznuoeFSHT<8cf_TRd24 zx;!Fcm@CzvkPOqc#g@6?+P+`2%5_g}nYIXAY3|)LWm5#s4maCMJJ2U9B*S#6-T|M8jf&i@mDdz)(ZG2{JIY&55F5`> z;BoC%#g+d_*J~zfMgqxJPLS5p%b_o0mh>Y zsY-T@0GXrF&nb@XRtLRCsr5>=_yxnC4z;9_AT2MDoPSB7leiWEinOW%`f~X7;V`v#R5d(1`U;Tl?dkj|hQK)>ynFLgpL|Ab<%WLH3-=IRfWKNFY)&G&4>n3?i gB=7!`XqXDKOk*Zo8BAL9lvg!imVT8=^K}gT0sgyWeE2Lzf$R~fW_V0NBv7!NQsXsq+a2Zk zw$7_+{+x+Xm;#yeT!AIa;oMLj*>0eGX`igxvJ)t;O}3Imc9Ue=3tWFEY!P#eW5U3s zi9DtR7Gq((c3yRSx~MI^?ggHzX|;H%AxzaN?HRbjtqjaT_dx;4Q50~^#C6;dC=&NC zFBy=)Bdak$@*l&jmiDy7EfdpPVwO%lb*VzmX>l3ep+{0+${L!zK&sC36PRdt0qu0! z`y`w0zR!{Du6Go;sw4TnK7?G4AJ?!mwW>fxyB=%FaK6Au{l)h7rhv)2pv`iE7M%(t zt&+o4b*HMs0xN&G~DGSALkDY$UtBQw~@dd{x{2~;L|8i z9-bljp0DgHKhru~TSSrX35ILX96vRvh$P3Dib2z7$o`44IBz~qVk1VPJRmV2C$SMH zvBVPmsr3t*=Yo=4kWsG8e8kuXzV^Dv={jpR(zO+iEZ|-rFvBPJhg2Rv-d$w(dVa`n z7ID9y`GgsCuTzz8D7?j33v|#h>;M1& literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InstanceInitializerContext.class b/Assignment-2/Java-8/Java8Parser$InstanceInitializerContext.class new file mode 100644 index 0000000000000000000000000000000000000000..70adf8e7f62be40b49d29e95ee8070ce08942a51 GIT binary patch literal 1053 zcma)5O>fgc5PcgraXy?jacN!J&;kv`P7vmR1X3y_h=ec-6{1n^PP&Rr-8Hf|Rm4Bx zKX8Bx2o9)R`B8}3#0^FS(aWrNcjmpfZ^l1E zIcPo!qv1(65|U4383pJ%iUvw3GwfyaJdsFW47n!)8TeuFmd9xo!}5sBSL2Y+5BBZe zYa(?+UyR&t=qE|Xb9zxca(yAg*gd=N#$zFaQ|``mWvV-67^v!4Hn4&kskmGjLt#H4 zZI2l4*q5d9oFg43!)oTGy&#cX@VJ6Ht{7OuIyuJ4pLl@<3~jrYDQ+&vNnPnUM+$Po zz*Pll@kt;TWHaOkswE5!+xY`J+o=x2Qa3v03@g1r@PqN`fX97*5YmZ}cEc0Le8QmF zj>k}%zChW`aPJ@f$e5@7=+oDQ52Tx+dMN$j$qWBY%28D6XK3ZaXdDmu(?CJjGG5$O zBfwBR;E8+|C6bhRf{dNc15aq1eG$Xv0yk3caDyh(pqU2ppiFF0Y|w5O8hrtkmZ@o< zkUxj^fwm0SC>GR}Wm2R;qIglD(VgCEH$J2Cah_a8j*{0z>% literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$IntegralTypeContext.class b/Assignment-2/Java-8/Java8Parser$IntegralTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..99b62ed1f90593328a6e3e8a22b234e26f5ff4be GIT binary patch literal 1163 zcma)4%Wl&^6g?BCapE{6X?gZR3Zx|uL|7n!6ogbFAVwiYiB*ZE+m0er$F6Lr3ZKG1 zuz(E+76`Wd3NHZ?NFX8Z*dcXQBUt#(%=NkF&N*}6{(AWez#8f@5)9cp#-4HYp5c1j zRglDtjFbu)X@*kdS6Q=tK5z|7f4IwA4jslmLwdk{-Pz$b!-a~bRXdJ5Xc)F{xsAQc z4R>Vw=8!jhm-B|s-Jxk4R@d3)O$7?FGE@~g9AQ|EEer3|8(I7PQrAq|^skF<@vRQk zG_~r6i~_@4L`=u@d~S0$i#%pk%;6|Qk&`Ajs*<5x=|rmHENE6Y1j%s~Cj?1>k4^s| zNAkvf{U$@L^55n#BwJ(>L%w6$ygM3ha#uGtEy~RF+v`1@LDISulb!YMZGmpD^%zuo z3t^UKZ}TxhDpidk6Q~kthD(3(EO?&4IGrBqk2j=@A=meft)08Z?xcTO=nL7DzB6*S z_$^aV7a}%Yd_V(5qtWG_-*!BoZl>8}cFQt6k9+hIQG+IKG zL&x6x6QODJDGHJ2=-yHwvcC8nnWs~c3KAspGg9meL6^y;uwb56;YuR)c!~`T`AYe- zL>S_(P(3kVw*ChBN66J*BVT)gVgjN^A}})S@eM`x9c9Xr-$g24`4`Et!z4e5$Sc~pXxp-QVlbBETb;~my^<-If+LmV= zbJcS=R~y_pHZ0xTwhy=_BgrryioeB=_qp?uH%;BqJ;SzwU?Mq1!2kvshA8Y#+vLHM z%P^gAD|9q%&oI@x;d+`tNGr%7%P@EyfuYh1(65|Mv%2CF@(6Cr zxTD}M?lH`UcA>|OAyzRg!&?>23-4Tyk5((}$rxi8?rNT>j$7PGVH7z9_wj%s%LQTA zSYvpUuXnkHa;g>f1k9v@DFKt=r-pX}C01YGS*yNcDCYm0aE54=h$rgmhQ+trg5!q1 zZ;~dq6Tpob7cr=5 zV^D%&s#yp8ltIcDYLuH#fS3}7#Xj`DdRo4ei{+okn_sqR-K4MUV>T>Ro- zc!+5_XXtAZ65U8!Ol#5^q%U-*IioWs^tm#fvtibiFzXj&{TO*feC!F50$VO-6K6=> zgw{}?#|VnPQ;ANI&@?3!A(jlR(~Hfk;^Lqddj3FBzVZ%u?Ja1$d4G{TWt}_zTwPcDVom literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..810cdd0a5d90e2403a1e4fa38006ed88af53aca0 GIT binary patch literal 1363 zcma)6T~8B16g|^L7Wzd${Ge==q6NAwu$q`?Qer|d#+uR?X?UNOkt{B=WOqvNr}!Uy z&=-w97<~0d8SiW>ZlG9R=I%`HJ?G51clOus?>_)+!7-6wNWJ1G{OM~Rgd#98#jqYb zsCN9|hg^WxN1nB#k+0x_DNE`9y& z0XfEy*;Ty%ZigR_B+qEyhG@xMe-QM=3s*zuVy0{y(!eszbVR6L`k^9aElEv{rdNav zOA}pVu*Nm#{8dyY*?}c`fmwRcpvX|hU0Uza?g0$?0#fyYVSK@jGZ>#}%dj{~g;kO^S^*%`%GFTL~BqP`Rc%H0P z!_p$ESf*8Le?kBRfkNXaiXV_^oS|6%hFb|}l0i*l4b1)lmEv3G literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceMemberDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceMemberDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..884688ec94a9c8bbfb660f398731009eeedf6371 GIT binary patch literal 1921 zcma)6TTjzq7=FGL*0BSOgP?435X2pT0-~Tph(V1rgBV%3FXM9-Mr+y*iHV6ZYNCnW z`yaf}8;xEVy!A&J-yRsHrIDMyYxg|QdwRa_&)=WF0NlokhzLXCfxIs-K9qHX>mu41 zCOjX;S2fizW!1dHYYkbKO+{1blgSUvIHC|m#FFShoMFn#DicC~EZ6uN-`nDPkj&6o z=jNkkgS%=BOS#GpRU$QHwJxnTWWy+x^A%06OO(E$OZ)SZ-c(Ixk4sLm9(GAYGQ0%y ziMAaqK}09Rn73*>>1n_;!xb;E)m{*6O{FJ^Ui2}6Q|DZ&a(z!x z<;J?U%}a6gV?f0DBraf(_HniuFhrLWRWX;XY-gQYIln0)%h2m-uc836kWFVhRh}o#j zzE(9S1d2X^RvjMHaRqG~ch}0!d``7b&~*$+_ehr2ZGONY{=_4c@Lc&jYPS661K|;zQr2K>z1f9fG zkkI82y8MKf1f7QD5=Pt}Vukby5xV{8SA?T0%OfvPb7G;G{f={ATiwPHp>AIzntemi z8O*wb3`J{1Lc0FB1$IXBmj0N-RTsEG0wjT+;%{U=Ayqs?rtkw7Be0T0?2$T2-l04D z9`lwcSU1tH{ZC{xDDr_sJ|2q*xNc`zz@i-)Zcr?s-JZ@(+PhVAiDH7{62%n7TNJw} HE~Dcgd|L9^ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceMethodDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceMethodDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c7953d1a5f785b96d97ece3245af14827d94ae60 GIT binary patch literal 1710 zcma)7T~8B16g|_$Zs`Zmq9Q^;KE!?ii->}j5EWynDZ~gNCMG6Jcc@$2U9+7M{3-qi zAM^#I4+dZTQN}yFTi7n3^kMGo>^=9Md+(X;?>|3&0(gRwiU>pEg?^x~ywsf*cU1H+ zj0X;;H@SFc8yj3VxU+6sf**=FqEJ=DlITU8VJ_%iCJ$#{uW}Ffj8_}FqYKlvd@w^_ zjf+?920uAi%~k3|L2Kw%Opa(=E|(w1XwhXd3{!_--}d5?cvm<_FBwnQn8tGK4( zdJ;pp!7y{VS{S0Mre%sXhS}U@>o4bbRorA44Adt%aEm($3}ZBjEXHW4TuvrbcwjsX zi@8c5#`MLmep^fVU76rk5)(4P7(X<{#UO@cGax0|$9z}5bA(o6=vlW7PGhK;7T;<& z_qem8?=|Qo?nRShW|%lPRzLz2X~^uBW@qRO8A8{k08aZ&%!?M^w%bmXKR0FQfdJEa*&2q}7H^3SyCsNO*&=bd7nRe67(8ck zG?GwL0#ZA<_-PLrm=nn;gbOu>v=*hyC4Vt6Ok#@GX?mK1LOUQ)$SBGYt{g-8LXQl$ zX^qNP+1Iqr;0~=JK*9qg!hkpAnnNBD7cfp%W>5>6)Dil_&Tmnmmk|_Q&}<+}gwBap zYQ&|L3Ila=rO!kFptxCzqu((2m9}0Daf*$sfoPV~$sFc=zzA7MOBtwtK5_O6-lrED z7JSEL3LvRuioY=Y38~^Sh6~>@5`jz-aU10&F_F&JaaRTfOA~zYe?i9225C|d>okah jdv2B`+;=U*1G1Coap$&7e|C%C literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceMethodModifierContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceMethodModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c43291ba595ddca64b3c95b8bef65903902ac3f4 GIT binary patch literal 1485 zcma)+T~8B16o%jFVz;ylwnhAc3J5|!kVPfYq{O6DiE9cWbm4xX1Fn=^vpXgH6^&m} z6HVkoZ!~&g@YWw?JhNSEwQb~PW_IQ|@0oqi+5PeJ>o));EU1VuB<@=W)~z+m^SP&@ zk0H~xF;#LLS6IS!owDl)ekkIILRAsd(2qDnz8yA*@OG?izQV-=x3=Qe>>ZnXVI;%g zE*I;KI&W<(W-AXVyI!}PUA=Nw&otzigf7^Y8_njyMqJGQtjvz_$1 zMs8EZS%#rD$11ijxWl~!hH+lQ1zcnp<N}Iq`4=!}LnA?=nqZ%?&dW0X^ zqDKTn+-lXDVIrIRD^Eus6dC%;WFf=pitX^##{L%fOlzx7JJGd`rHWCe?jV(}mUdQx zYFJvTn(L*q$)Mi3yIk6+&?;IrOQw{H(V0;;m)97yu#F6-#t#{kY|dcl4{VeD!7$&W zC_&bskxc4@-{zA^32L0z4s&l8A)XpGS~PEV6iXaywlX+`;jQ^!y~&?8lf z#;82XJfZP2fz5#NFd&vsPEtVPU-~I=Q!RQdq}6<1H~1OBS6XnJwAPJ&PV{s)db%6^ zg6NrU^h`JUCDHV)(l|~pE?rS*R`Z3?&p7>&mQ6?Eh>#<%5Y4=%oh));zzEIKMkTp- z)PkG#y`h6V3L$ut1V{qu!gmZm#z5g1!}%{b7lBL?32bjBd5cu$9cHB{Sc<~0{!e72 kQ{+8~9Q_edFc)OeF(1qf*Jw^tUfBiL>EA2wd;|Tz0O4Cp&;S4c literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceModifierContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..220d906cd59ed2ecb56f980d28e0dfcdce55540e GIT binary patch literal 1513 zcma)+ZBNrs6vzK}#dT~0w&4&R$kT*9AVtM!GGa0&#F~N2R(W68g;Yjsx{mNw{0_!| zPl!H9$Il5z5X2~)ge&~b|ge)TzML)s}>0VeR!rsxh`MOm%b_{O2F${yd+^M!2ynC>m zDZiq;N<%kyl~O}*HVbODY}vbtZaNKHIapHcmgyM#TV)Ah#@W`5yddBGt6EsHA8UOFb(I4$ad9o)$FE>5r*L& zugXT#;U>2uNMbaKo4Ca=!i9ex6B)9Za!+X5L%6OMvYSF~EQ)a~v+Ma$F82Uq=b6=X zs4~^0KDI}gHyPp{2N^~^U2r>wDVpRMeT+Z^47V{s>m=RHK%y%;%_Su1Gp?OMI-*txr|elj`XkX9KYGrO{zNo=&9qLEO~ONob~%?HJHgN~U3UBnBS8M0Aej0>Ct2j& zfE4Y*bSYMU+l4!3pVEUo=3Vd+36KO5`Ew-SU?6{nWbPC<0uV_8?Iv}Sd_z3-9e0H& rSe(Ka{wI?1iky+i`GtrCrJZFF_u4zdecBV0SIo=<`Y(%`m(c$kOCd)H literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0cfb4813fb108f16e8c7e4f79a0b2adef981586e GIT binary patch literal 1039 zcma)5O>fgc5PcK7apE{_oR;qZg{H+$5aECXQYs`A31JkfiblP==@J=Ir?NLy_$mAc z4sZd%0hKF%38^saIK?SK^fK$+ee>SToAr;AuipSXLBl|fPD_colwgh z)H_2zj(cwpMQ0RBF_9+nFbotd6k!rpvsjN2(JQ|%GI+w`K**Ql;f#Q=>2zPSWNYY$ zgI2=d_T26$8npaS4x`r5gH|*SWpE%`)2cGrZ4(yC1{N(Wp+eX=Um7958H9m+Ot|Zu zSITpD4O9usnI5}AEJY}y5^StkxPXg&VLpFhn04$HvN2!>(~# zMju1U7nsp4huhDMU0!-|#0yn=J8>ciLY5Iy5JrSyre}W9tT|o{!(f>^&+3&XNR44y zE$$PyRxzxyR;U=YS}xs))E%>;iRzr-QWV56z%bB?z>x0*(9^}LUDgcCso2`_qGs1E z$2{a(V?H0hiyT*wK$0O$$ffE5x2UTjl`!1CTDurlFoIErP&1cdPStzyIX357iQ9*! zWmGn+dz|>ja9PF`1>=}txN)&I8G?D!GM!bycG1!F^tOzvG>T6dahlxXb`+CHDY%B~ z45M7A+aj?@V@Rt-Uumlee4^&k+X8Mz!K{EA;U}ik1ubU!O~jB?I}VtkuRw=HE-9K8 z->e_*aJyveR45YOGRv0X)NR@?byVhiH|jYrx0+*^6{7YWshP>pUwE>yu`Zm|-eSJ{ z;dkmR=(2*YtH7Q442tJ#-P+?P43e7GX>3;;VOWNR9?H95uCq&Ix2D3R3PWtmF?J6& zj3e(9LqeMdT4bwQw|DtNQ$WXkhcdrUw~-9K$!pG|s_=oLTVxscYI3?7!!6>T-|VrL zu+JalvLLx${6Zkh<0b-7>1~QuMys4jN~h?5O7ud@dJxSD) zoXJkS#icj2Z443-tt#IURDMuo0k^$^aazUXQe1m=p4^!FC;f2;cfG`A0ua+CvmY_} z60z(VCNu9a6@VZKxTn=1`Gth?8;b%IEJ5Y>{s%JM0TKfeG4>Bc!jj9fj1_lfxKC@6 Pc!>iK=)*61&LR94RBej9 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceType_lf_classOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceType_lf_classOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1791abe99c516b940b4e3a413ed7050a043f2f59 GIT binary patch literal 1255 zcma)6%Wl&^6g@Xi<2>9pNqJKqB_Xww3U^V7N-0Pv62d4HM5AsiH=RZX*QxAD6+VT3 zU;!HtEKu3ZlTy5@+vvkraUlOQ_(Ify=l;XbPoYDp3fJ%x(g%o~mkU zN!!|0wATz=SG1NGdooo$VI_9@f3~y5rgg5hv^S+q$aaPYg0R^20IL zn0oI72VzXnOv@n@V!f29g!O;8Aww~BzsFxQ)mZ_;{El?{Z(q2_Q;xjSVS-lN8IHof zccSE7+ai+BhLPmXoPceN&nO~-nfA1Nfl_Hc^$aWgjtqXCz#IrSaFgRQ z&uY;43n(?Kn)VrUr_es~lyHkfazXgRK7n(NK?B?xPWpgjF7^%&P=4`S+uGwov#Dp9)Dq literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$InterfaceType_lfno_classOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$InterfaceType_lfno_classOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fabec9e84cff992b520191fbe398019252313537 GIT binary patch literal 1273 zcma)6O>fgc5PcJ;aX#EON%^LHCKNkCH3tNUR3H=yVF+nOqQb3m(`{r(?aFql@Kg8? z9N+?i11eX36k^tKiYo;5W!Jki^WMyxS^xa??K^S2##nx!o^|l7`xb9nSDEwV}Af%=3@o5qkk%Outuc3e<;XxARnE#1LgoU99 zUyesJXu_J_dBbU%BikLCQBEz(=y?9nwB2yzn+JDHf9!_No-n7CB%)hIXqZ>ApkWbZ z!b-X@LT=4*o$w*ymY$Z%GB#CI2}_CUJ5CS^SNJ7Va7x2zoMA*E6-+4$;gQ}+0M=8+ z#f@nho09sRhVzoTDJD*s5`j>QI{yCw;AZQ_u>{jkO^c9idpm-#*l}FZ9q(-mzi)4k z_(qGTz;buQgrMk#MJPnd$@UU%|D!LVFXB1q^Vdv&)`2kJ3+=(%7xsS4k(X*r(TY89 z><`2fM?#kqdaugSBjmdx2%maE$eCF#H#DkJ1cXNVdI_s3wU4`pYy7S>ey_kB2p4dX z*JVD{pzs$^YE%{FGv*GVeB>kH60bRF%0B0nN1oSNfWkJl(Omw5(x)TmA~NjUMJ~I} zu9tBo4v7kPC upvh0>JiHgtVBEECht||l>+JfJCZpYDEtOcR#I62 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LabeledStatementContext.class b/Assignment-2/Java-8/Java8Parser$LabeledStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fac9129642a6defbec35ae7d1edcebb6e55c01cb GIT binary patch literal 1281 zcma)5ZEMp|6n<{oHGRppwp*PqRjaErZResOD0B!?kX5oyT-o<@Jsa85RFd1VU*Lc6 zKlnkvDEdL>SO0|~sGy*KKs-si8QKmdaPQ5{InVQ)bDn(o{q`Mz`?#ebB9MM)9+-C@ znXX4}3NcJ6h^tVL5LgU-Dj8;*Z0c-EQ&N{4S?@WL4y8b1mt?EAPmaK{)@YQCp1Z4? zjR3eVa~bS2bgg zmFu?Y?CN#f^t{?>+=Jpm*|iih$STOGn8Uol(nQH)X#(+8%dzA=ztYKNj^(hZEd^%; z=0cSkmM6&}H;p{bsyK)90(tH!xuabc&@>~IdD<9ioP;Xn{W`ft#l^IPg)>E!UW<&dIK)m@a!HO(A0ask|CvMC z=AncrCn}X{;WcJo@^PRgg$Qf;f_UjG-(17eFrmP^uRfN=)8{AA1LfcN%XMhO$UBU{ z7|2!MBmWH3)g$C9Z?F)7&k_kL9Xj;F@cUGKkO?c{{X}xF#!Mo literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LabeledStatementNoShortIfContext.class b/Assignment-2/Java-8/Java8Parser$LabeledStatementNoShortIfContext.class new file mode 100644 index 0000000000000000000000000000000000000000..af6e1ae94f2d8227e53fea068072e840b7dfe477 GIT binary patch literal 1362 zcma)5+iuf95IviuaV~CiDQW3F(5B>4YAPXtlnMz&LNzieqEX-7W)s{xHd=40{sG^> zKkxuAAb3FKm5)M^Avdo9d7#q&4806r5`vE(Vrk+HJSXn+h@vl`vN%i7!x9F^f5dIihs6FDU6Siu6r ze5ho@@+5b-$fAVXDweR!uufg(BC_ucdsQO@apQ!VwPPQCRmGYQzs4^u`49Ar-X#H6 z&*FliUj6TJG9+3wR)(BmIlMg_oN&=GPi(rGX&oAeZHA&Z;Ub0_QH0BhG(nR=9nW5O zy8MzMUajd2>7ZZ!P#GRXOe1h#Fp>`W@ORg#GYqptczXWAd@~lC^7}JF%N)5wamt@r zK6E}La`%i3N6v3^Pae1)JpxsCXpDjTxW`bAZ1A;hmm&+r9kP3#-YV!lk{_@^YnlF) z5vLQ7s^@$0Pl$h@GoxrA>EBm!wBDT-eK0LLPtlv$qP0v2n`7*3y_lxx>=n{~!xt%( zUP&k+PKiprvHBUgk8~Vq$sk5rN=Q}~=%#}0al$I?zWPJ~Z{J@>kCZRcmwTv=BOeh0 zVW8Ofj?z2KHm*>rf5Bo5K1(d9c*L@dLS+Rtx~0w(D7}6Y$jT(hI)QBb0g0m#uWIBM?ERLbU4MNv?t$#}4*Q6+VT3 zU;!HtEKu39A z5l8vScH8VRT>k{VJ-F9e&`pxw0&yzbjsFhj1##jBCSL&tu_Jf(uV zW4S%O=~zL~XjM(m@9CB+9A7_sp!*|N*aNOlIYqJ?Dl~@mD8B>8>-0lvIjpK!(~w7j zVdr9?42gZ)wS~d3Te&EaR`o>1C5B>zi)jafyWG#9h$|YdVx3`?lW6{27l!SM8ObTn zU(K3mR8J(phKB1BAjikHmqA$ugOPXC29 zoKZ>2E~jYeBX8t)_)}X#uSKNVJEgT@NFMS)Jo5rU%vvtVJ=q~1FyxoIC*NGUa09hy zgV>^d&e7)pvZMtz>AXR=+fe8U$kYmo@(C;FP(IL=;pQw92B+IC0$57OOcOGT39l)X zRx^^I5SUu4mp&u=F+@)z1{i%L42MFuiORG>iL9g)&*SI&Fj~@vF`%=IJ9J9&4+()V zP^f=L@g1`Da};Y|a5)B9B{u0{T4jj5@di8OrFQd_e)oSM*Ooy9fsE!L3M!K-Rn#Vy Xp-y&#Do9Cp>Bk{C-y@qLyNA?otw0eL literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LambdaExpressionContext.class b/Assignment-2/Java-8/Java8Parser$LambdaExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..234526f9ad0201ed0ae23c006c2ffc1cf816adaa GIT binary patch literal 1411 zcma)6-%ry}6#niC>(~bS0XRia5QJ_+ii*)>V1fkW%tQkV#>c{LNTF*<+mZRF_->4e zm_Xu>=!3ymU;K}Z=eBh;bVOcyckeylcfNDJbNB1d_a6Y3aZg5!A@x){&>p#X+s=w*y1eZs5r-@zkwzbqT_LOOeVaRuZkYjuVPJ>5>n($K z4i=T#E+tnD&D>E}49#&W)nd)EcT~-E4O=}}Q0P@ct`a(ls^@XIHs@-c+fCinj5VvlD>AYSW6^paS&i47O7j?$F_gwIE-_4BOdUgfQ8#t> zp%8S@imJs;8J8IbLxO6$<8qVRDHJf0##M|m40H0p_MJIxGlQbkLdd|n(}19$N^w(= zT}$J-ARFRs-Hmc(jWfnG%qYb!{E^Y9F!ZcYa~U!<-Q;Vn<`%c>+Ll2lz02$C&tEc> zh^lKNqZTnFeJR2dhKa5sLVi*DbTDUCv%%X8l2WWP^m$Da1H>?YjwN1pZ_?^CD*swf z4P)rvaJB8dXWD*HNkX*EXG?BaEqj|k)&+Go?~Lh%X&dsDfeu7^PJd(38XO!%noX{3G3zP!1yR69aJ|U;c^08}ye?P$+%Fl^8^p zm{+l%qUA?sDO*+Lp@?U53~$cPsWjw-{!WQYoj|Vpr8I z*A(i(f+`x8Yt*^w3eMFE7j?tZ&9YtPMF|Op=^(|LE$X`2rqB$>^;x{aWElfE$#9bR zHX0^x7qFygd(?w!>ejBhYU++t>{msr%|JF)F~~3*tfFMqxDdShuWB+Fk}xb|1gEHn zo(*?VF+`UP%W&^_I`tN*D~B4{l5m<~C{UrN3%9sPB8yQOV;E-`;pB$s^oT)Gv_NJ* z6N|Ym5A2+b^B&kRKQ!EKtVF3wEJn@Xf+4T`x6urdRWh6*r5P44H|pD5RP=3=-bA(a zm5sY)I&Aodp<4G4wAg}u^!KL7FlO|3kYSz*4?-PpH$lq&%$2MvKV%3ixe`OXskt{y z40C-PZH|4@)(TyKKhBZf3KN2dz=>{qj3nr+P)->J|N-qA&G|zTGSO14U2cGOb=ElYS-1d?rrO$s@!& zi}^^Q3Ub{Esa8U&GvO13(k%}pgo#PY7sj6>{j}X`0wHSkGos61C^V0PpD<3lCr%`d zw~yP=En&XWml<5~BNqvQFpw#{M)nZ~3P;H1U*Jp#9!sbxXp7|=(#zj5OK(Z|G^MM@ rft>9I`9UB*|AK@u*JQbh`R2}WjrLJuh!DX7S?-yBoz@iXHxT~~AV`YP literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LastFormalParameterContext.class b/Assignment-2/Java-8/Java8Parser$LastFormalParameterContext.class new file mode 100644 index 0000000000000000000000000000000000000000..6cf0aff7ec6bdc8a4e18370b00c24163fcf98f53 GIT binary patch literal 2288 zcma)8OK%fb6#lMFJ&7|Rw!xT?Q1Sx&pbQ0Cpia|As#K{DwNm>7x@b34?V_UF{wUOQ=Ml!^Nx_Rb^El`G&f~jB{`bXSe*;*Br6I>K zaogUtuimx&KKC^oVwg?5Sh_E4A-bPD=SG+NJxAE?hPTbz8cGajllgDjzGFXd`3=71 zQUTKQ&F!cF4HbsPEayAkw)4>0uT*7rR7VxZ7^a46?i0dj(T%VT1L?Si<@6=xb)4a3 zl4?~5PukM)#C|p>7#5N)*=;Xk7AG~lspAypXjre;U53K4BOJM+8v42uF&mp278s5s zvQp)6!Tkx$V@bzpoMAZ5Nk)E#QW#owD-pbu;S-hLZfq*Zx{ii|tnocZW_UA<4`TH) z%+(u1@M&SU84j(HE@*6)BlyOk_kjCdB?pq&P0KRxcFYb#lVCF2I4UrPqq`Z3QiTqu z@;|zxtV%IRtTcuS0X$ZR=cQ_>*p9O!Y&q~L;cFuf%R|M-j4@=~*cIZd*Xax;2XT-y zLy>kvq)diOuizX}aa*x1q}fK@Xd(}Xw+cx))xvE36TTjuK~rq=J%)U}VN$CC5vqm4 zaNz)n2lEUzPnT9lEM<}&!(>O=TTkxTPh)u~0fuPBjyLeP_`0K@ONlO?SMwqzZScOl z<@F_HW(qnR!RF(%8cJzFGMvZ|bu=l4nRqN2+ltOa{53UUhVn>*8IEPQkIqv0`fue zt=T^?^E=&!gD6tTsD6t=^*egAjQ68}8M2BYU)uO}-#MJx_w-=}A4HB<2takH()tJU zKVY);9P`aTv6zD*$pzC6Nq$7R`V&5+ww|1=7c{;=Rp-^wT?cu^& zzJ5ey%{I3W&CNDWr=ocquHcR zy%u$hkK}Af$=_efi6M!Uj&vN8xXG|^z48o^HOsct3x;z3x-HiVdpd40O!~U6TaFU8 zkOnfi6USZLV@L@SSo$?&$mQ!kRL;NY9kyE7b4jM+c;J#GMbA?HG%`S3@{wUaU%142 zrO#D{@Mfna7$)kLEgIe9eIa-Gew$W|gQ4aO*%7*+A;e|yp#?!m&>w=ty}_y3Ezx7p z@`W11SYIS}A{dtbVS$pu8=YNxJC~Y-Vo2;L-hB6(pLi#Ux^fNJVmqC#Y>F+*rB3=( zuN={|GDI7~QQI9yQD-%qyz7sya2PUI3P^_geempJNC)+y#h?P1rJI(d%L?eAdB!w7 zXXtAV8odEVF|BD|aN`WxC;FtzOV5bAwLVABEF}g2#sFZ90v0GWhxs5NF#se+0R>8> zo8tp$R9!EYroLk0^F=!`gs7b|BI}Ekx`0O>V2Yx9hHwhMKVD=Hny=7K9&Ujd+IdC{ z#DR3_Co&(9D4iiw{D#{hxK%>^Ll3GfBelMQBCV1>DT0^&M{++%@`Om94oNhW`&AZE e=|={WViw`P2TSx1bbDT=Xi!|Cn4tI=V}Akegi3(` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LiteralContext.class b/Assignment-2/Java-8/Java8Parser$LiteralContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bb552364c1e2ed9431625b0c5050a646a3d704dd GIT binary patch literal 1256 zcma)5U2hUW6g|TtP*}d&`i0dNsVyIkG_l$y7!xIFT!W;sr0-KY!L{32Gdnc=75{?| z`l8VXqp$ub;~l_tW7p^dcXlu5oICg2yWf9&{sQ1Jw$ey2RA>FP(OT70PsoQ~5tN~6TE6zQYq z23km=awuZa#uAnpY(YJ#d4mkA^p$7ceqs;QY=X34K(Sh&ENVO-v?+Gr$@}=%euJ|z8Oa4$RB8HG$ zf9!eTn@uw`COh&(Oc<p|@&-v^5`47fT1wI@_ZXmrA5us5`!Yc zHC(4yp|>?y^aNy@rF+%~SnueW;ReN&$+K08D{<(ZIP@B!Z^ohT$Dyl)z7>al5Qn}^ z=+!v%ZXCKs=(RZXUL1Oz(DZRpG@jJR6N}Dtv$gUO3-3cqvPh668%VKDf>vR!WC#^H zjfn~CZHS%OSEqapM&96diBAexY<)xV4f3t8C^kQ#oPep3nA$$8(L$MR;SObKJY}M9 i{7dBWMUgg%Z2uOqusN+#M`L<2H0dEMU?CK}7+}Fyr7j)+vl5$a^T)PB0`)nlkw4&+tF^ zpf5Q3;NYu2%5iT#Bn?#Q!`}j^H?Hl|VZyB1cIl5)~p$s?M z+ZYM}I`xLqwCuL3nT}zrC(EkcH68tks~*8nG_lVzC}9H8 z+?L(cJC2`T!cB(CRqk8Xf&NzKcBsUB76lX;274KI2;nki#Vexg=!Pm1*3-C!+Y*Me z7{MKex$70gkX+YI-PvH6m#^D|hO#H&F2hi$Fu{SF+|Hncau#D4XBgu&KD*z97?$K_ z2w|q5qu-*svM0bNvzQX#WqztV{X!T9x`BuoCS|23QB+@bhQy|Iz^V03-Q?TdqkV4g z3PCXppG36f&6i;z0{TxKP=NDzlYiWgHP;yZfV)SRwO$=5D9toIZWSR<7lmS zTiUVT$CMbChnC*4x^{~{*9CMwL~&6xgCVueJI)KM;}ElkNt$vmDW`jok4}zZqMro( zUXTid!h^3v&kbc53C<&3B$*}YPKjR%4AZF4Izw+2#OVphREzQW8E%{-{+V7GW@$}| zqe`CEIozW)5|Hr%GSPq`a+RSV<_1iV6&a*zF?WW+sPizYbQnX;4Vn*SiP1jM%8k0T za?!vNxzg7m6cBf_)XHBm^o1V18q$P~N*T$@80{=z(GMt-6|@oseE9U&+pBn-PE;)U zo-2ePxD;zYQTm8n?Hr}*H;l$0vc%j@d0D1Vs7&KN?NU<<6#n3UAQP8CW(j2O0wj)y iZkA;{axKGSveQVogIl405y5$tY=-O_*&Nv?82AILN2(kE literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$LocalVariableDeclarationStatementContext.class b/Assignment-2/Java-8/Java8Parser$LocalVariableDeclarationStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1cf7c0ca36deec73687636ce4e9daaa6609e1e1a GIT binary patch literal 1366 zcma)6T~8B16g|^LwzOMlizq4zR=|EB%L9oTh{mACnnH{;eILq%tZZk^?3D26-|#>9 zpf4JIF!<{KFh)%@(RbsW?NS?{p)WH#Gxwf*=G-&;`R|910PbPQMuH*znD6mhPq+$& zvN6O^>DidA1x@ZZxbpaxFYb$`&lT5RAlCw^#lB8q7`Bb1gAt?{mIq1Q)Le^}kUGX- z7~K*2Y1s6ux1&@SQ?uF&8IH(QNn(4dl{sklzII=Rb&ra#W>)g=l8D SL35t!8a)^3w`VxJ82JZCnqpP} literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MarkerAnnotationContext.class b/Assignment-2/Java-8/Java8Parser$MarkerAnnotationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..540859da9d15021b3f8027cb47c0870331407fdb GIT binary patch literal 1214 zcma)5T~8B16g|_$Za)?%g^CJFD~Q_`SsqL@DKQ}=#+uR)S&1h4FuMDS@Bj zfAB$HH2Prh)gNWNyKQmPLNrZgW@qj>_ndogfBpXc1HcwGOe7exFZn5dy317{R0b2c zVIpb4M2cZK_O!CYRa>YnDSgeg=gVzhYH_9+QZ1ofzbz!gnq9A#8@_5eTRi_ z3>(*!Ga8zxrY?=ouxwI8Xplb%#YUWa>%DgT%kn6nWMiEkOad$EYVt|uObXO0jWx^Wqg70iO!6o z`*A2W>FYk0X)V&-@*p}}$)_ngdx7*QV3$H^N@DDXt_AOV#2kSw`$ zvw{Z$zyj@|9wT@D@iI7+jM8gbSMiY6BE38z0-`{^`V)l@n5kX`LUZO;QpHO`()f@>A+AkU&ZWq7{gsG(sfm-bqHm#Icb*sluc1 z4lG~;f(0sD9swah0tuc1amO)@p;UA;;~Ag(-8<)w{r=~hw*YQoQ$>U!dC%B4uHQFY zkGm?O42z+S;t! zYCNJ`x@FjXeaA99uU0QN9Jj92Ha*? zFV&A@2$yrc&E27C8&=clabl#AQIXZKfKv=>CriyRyJgy@xFNHhwA^}mPeq<#A!Jg+ z^aQuLn?w$a8qVM>!#pQz-Kl#FtEEOLrZ{~S_*g6NNkBovvINZWu_>k^hMA6R8AG8| z{sR>5WQ`%ZLyl1XhH3NWXxQOy+vr%d6K&nztus_8{Ga|DwUt2&T3xq$e9WMf%0!6! zN0U8d*gVEKALci^P2Ku!5FL>r)e=T`uxmUH>WayOPH2giGjhB9jw#XUkXsw_e$oAC za!=fKJVBM!ZF1bdY}}(|*ae2n)VRQ1T%dcFrq2U3Gn~VD8dqp_5ehv4$x2pHUSj3| z%5z#W3YbWd|3Ir%5>5hEf`C{heUk!`f2%)|j;>*#mUx9oYNc9uh4~kU=ma7_{u5^N zpGjK8r66F5W?7GtZaq5`%aW1*LgN}P)3`!!t`UF`$X4GW_Y|q>0dkesI30mZ67lPw zB>9R={u@fPOGnL6c=>;jrK6DV1o<(AD5&^Zs#y1DhAT8@DX+A1gZ?D4W*zZgslpUD literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$MethodDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a986f7b966a5685d8114a9be4f24c4a2bda4804e GIT binary patch literal 1620 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodInvocation_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$MethodInvocation_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..30a65298c933f6c2ca0ad13381dbe549e2b3113d GIT binary patch literal 1629 zcma)6T~8B16g|_{er_!-D2ga3i2VQ-`7R}x1~t}{N}%DDEOe*~?Jk*43H%iQgAe+m z(FcQxPyQ(5own3XS&(cpGrN24J@=k_c7Ol*{sTZB%K>;8B5#coV|mjM4KBj);Z^{C z4FLohrX8=wH@JLnR|?jNy>Cds*(DbG^((-L#Ba$*%BR0AYqvCtLaKnCC^cS?88)bn>g}G!0SQ zX1GmETg@8pQm-b9ht!B(Gpwq zmtn%Sw@bMh{HvyA$~7g4yB?QfsPdfv?lJT`N>Y_@i;D;bF{I%EhDkC~hl^__!!VaD zI+EOAin-K|qIjfXL{W_JQ&V2c;C=b7%#cprc-joUb(%UutY})i)U5AuQ8xB!^dwxU zP)p{4$pr~l+{|yiD$!x9bBIc(Ef~g$)Y+YzYjO;l(Q%T}kYTJR%4OCnsN=ALRpF-$ z-eju45NZjotiv#K#W-8`Zq2kzM!y&v$;uGjmd5_khH>0!H>kvIXA5uJO|j2kn<{mm zqp9gbvNe5LCEk#4Y*oKju*e53kMjn@lWV5a{X7QTq#=X3^p3~$oh9fG0fa#wqkAHu zyHR-Q1O(H4dG8l^Khc@gq}8vUXVbKfyP*%<&>2EMbwg*}(36Coa6_-Sp{EG_3`ts5 z-D91)Bk4ql(2;Y5dP~;{nu2PeCm_}ii1h}{5|n-ejsPz)1=5+}uZVx{3KNEhgjs+; zyGYOsR2zz6n06(lFOFXyyXdxzOY~+6(;egzWuP2LWPW1s1EQI845q)~z6XlM(~`f< zvVwRv2c4eMnBo*Z^S>kyFDF@}BrpCY@#1-lWfpU-onfB#A!6_m!2&{bF)Y#=qkRdX EzlYO(bpQYW literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodInvocation_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$MethodInvocation_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..34a8c79320e46ae87d76e55549f4ca3b43fa58b7 GIT binary patch literal 2423 zcma)8TW=dh7(HXBw&OTWoVJ9Jlq5}Bd?|G)Ev;)4FlkC%95+f#U#o30G27bfXm=f4 zB!mz`LI{vR0*U|72Y4xh2UH$-;YT6P>?Pfztt(f1hAjtn8VMwmNM$gJw7|t-aNXGNZELpP zGwyYEjo!UIQ}1f#BQIazcw5?={f=Kypqgtu;0&dXX0%JI9nG>T^?ajewo95}cg)iM z<&xPqY`rT>?wEn>ikc^r!8nc!q*%GtdngTo^SSzAHEdJLQcId$-OxJC-j1v!F)1(~ zWKuKR{jN0ZhHly3;7Lpg%mzWNM|(1)%*hN+;U$4le-caJM2?d<1pBt$DXEg|__Dx4 zxR~G7I%xTdz+w=!HrO+zWl`Jb8qeW$60c@3j|G8qM^jE9QPmCIUQuElRqcBIZW3q6 zDKL~GBn@efVG+w2oW(hTGt^F+u6YjegTR$sBT&Y(+97C9kxKrqYLm+#ui7lifo{K` zOS*etVJ77A5j_K1Rs=>?=?Q^}hHl7azk6SrE$x1XD~ZNNZF8+DP+*lvk%z6ttW7T~ zqXkSQuoN1_-~52(I84g+Oh$u-5<>PPIDX?!OJIt)2kJaMvl|V$rMC^u?wjOM9RgI3 zN@s;#iptMNrk}3w&EN}$<-9TEbG8>a8_J7379921)`uHw zn*tf{%BdSWazLGO`8p+WJgV*zUSo%x0B1v;OQ*$K!*@DeNG@Bpw*7Ej+w$|7&nhB_2s%xPXD^ z;*d)OPO23j>)$j2ry@1vSxaD!zZSp*XnYj;JkM`Si1QOLR+x&%pWxV2#DC#ef!Fy= zs8{7apBGT#Qza~T38}(lnF(WI^vA?qj6z?JLJx?31DCwofng@xVJ5=mKOyu@Tpmuy zx(V5E!l#5@!CQzq)6X+1y2-+1?FmkV!JpwOU&e6FNh*6?6y+G#Nx3!~LHTpyu18Vc zjiUSo(G^s^+5yVbE`#atP+t=IHdclcX556CaKcxFz7sW1E^3~yiRSN3pnTjBs5ti< zW`E^J*9&PSLHQdb%HMM3UHO<6dlRp@5cvd*E!$u&3jn&kXKnj$v9Q~3yVKv zy!aH0h2OChgX$7<9OriV9@+8_xWQGLGt2a~7ZrJJxX6zz^3$^-aolveypLN>6sR*^ hqQ}(%xXph-YUU3Z)d6WRs>bV#(~M2V8OA#p{SOSnM&$qi literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodModifierContext.class b/Assignment-2/Java-8/Java8Parser$MethodModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ffe4f2a47445783904abe8da3310dbbf2d7ddff7 GIT binary patch literal 1668 zcma)-+fEZv6o&uZLZ`F^+QE7Py=+U;0d86r1(&+PrJf32>6wSDpH=`#Rn%uDbv1g~kk+I&H? zYTT00!7$izFrGFH)7EU=G%}`P^F2ENA0!F>5V{ax7-@x9xqaKLteO@5md-6FfT3rT z+r^zKZyqeha(5_cs;U{AsZ3R?)fSX^&a^gDnqgP1)b4D`+A(Z>o2MFewL~w70zx5l zqldvy%Bs1=4ThY0)D7LfBC;K| zTqRzXaGas9rBOM(W^;pEK}2yfgi|<8_ng{mwReyzi{)D4#@nx*elEnzLTDg_K_Mjb zJ>6~x83J0BLvKzLZlk3<*+k?c2e2 zGjtV-YwB`FUB1d76^cqZtuB*&>7|ldOlMS*Evac$$aZFxd^*PvD&5FuR*GwR<)#So z<>|UCVkkn%sM!J`&Ri)*h3_$VV{wHt)%z$0hGFIqm+BSPCrhQ#_~Qokk)gX}Ya3gu z+Fj@4`b9SzYJrluV{P!PE~LXPwoHp*rpofXX0Mnvn<`TbvbR3jyv7hY&|!vXyG4$d z7@_G7)3+1o0mB&#(K<|TWAM@w5KPEk?;~{X!~1|<$xK>(;!1u=>nMSZfMF-Vp9qgp zK=5Ds6>;Nk^r##Cn&`7`^oSe%hUkeVJ>*m(B|6;Tw**f%;g+%|+~{{i$J}Vyjebvb z+>K7S(I1FTxY1|a=#NAv-RMa-`V-OgTSMzG87AEH(k>;E1CP=BkRBUO2H+tlKf@<~ zp_3_`a{~Hl7xsI@+51hnVf$CQm`2J0=SYAgASa(AdJo;neMA#aaKZzT#8V%aMv`xc y$loy|M8P5ye*S+V{Rc&UkjT%!B3@jmXSs;k`p$5PcA4^u>Ag&U8KUMnbo~Z%CRIKF literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodNameContext.class b/Assignment-2/Java-8/Java8Parser$MethodNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..d8d07ded13e7a2de2d773c6a52fe1992542b272a GIT binary patch literal 949 zcma))O>fgc5Qg84)7WvGCTaO@1N4KE4}>`&ffR&WiH+8qD*pfh z5=e03KX8Bx2o4CY{3yh%6PidVf`ez*yED(sygNUCefbCtpHKS0`PzhKEq&m?dg#yy%}^1$^&)sybgO;-*= z74*qflF03l><6LWYe!vb*szf^;W)@+USQ+Iuu(;i2E9qX%$*<%)LotJH zAQ7j-kMXB}?m!^Ft^B>iP5TfWQ>-3DF;9Zy zg)C^Z=f^R{0;P!%<6*%HkCx422h2g>9L}@7z<-xv@D8wQ#eL%wj1RmQSYn&e=hic} zJSA+k_ZoW}yqdN8@@Hf}9y{AevGa3etQYLMjPf{OiC2v`iskpm&Li?mzPN}>W5-(z zU<4NGKTvpweEmBLwJ#{8pp&GMibhFZp=7=0x)};l;_#J!K~B#?-Z13t1Y%${$+Cv^ QWEHr=tIhB&lpe$u=0!c1TfCaGmHVLyBEDw~C41F5B6>(B3ZR-jeN) z7>S9AF~%4*0TMCr!Qdwof0Xe#y3L4mt=bJ)YP!DM_mhajvXDq&2uXp{VZy5PziMu8 z$Q`MqyLHGAIJztSjaL2T#8S3$kC_W~+ubdc>bB<<%ehKZ?G|j;udBj?%LUbPeWxJ{ zL2)5=QCE;kVFX775>&1=?@L$ULbm)W4PQxFs7cjuT)SRvZp)&DF@f1|?X`nFxvX|u z4e9z`XRj8<4ODk;8s0@66F3ppT31fPRtMen;{qqc>zW*Dsf9NLro(`COL|hAFc8a1 z*#{v+64Q9o!l@KyFe`BG^?E4~UvgZ>zoy&wy8SQb?pQc2kO@^>aXeqTQVnAc^C_Ig zIe}yBq*R6{1kPtGA>zET-sxE}cSlQQQ^;wljNEs814&!S9)k*;&E|TvBMn>>7%b5P z0;3hjmDN_`u2ePqZk;p9(pqJ$+8zY*REun5zn#b|Z*#lOjw6-8h#xkSz`RkHJ~z{A zENes^-W(0+r$w2MG;1%go4_d}Pp=ONJ+k@v`pO2cjV@3-P+-R3=+q%^k`%kKRudT7 z($_R7Y}VkIcGaZn$`>Trhc@LsGDxO_NlJCziL$#b_o>n9-n^QB(d~Lf^&ZenL7Rq)oziguaLO`w5wVkTD706M7|T1KFqz z{6O?oe9$jH5y(%N@;?%~7$v_PCI1uAMJ)BpPX_Xnru@%@ei$V`6D9u((bw=%zx-4n zKV{1QMkv2kLWCGSVdWR5|G>$|UE?G%K;t|@eDN`%AM-~>V4i74?Y6-*{{FR#4s7;> zE7wu#Ag@q?8W>;r3v&-KvhV_P`DZvY0G(x^ZOXRsaA1 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodReference_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$MethodReference_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c498909bae59891536bacd36310bde128561cef1 GIT binary patch literal 1352 zcma)5T~8B16g|_{Zo6HeE#N0gk&68QR*i`!OH4=;V@)Xr8XkNh3%xB1+ijiQ68I_p z2OsoBqYnn(j6ceFcUy5It(Yb=)7g8^IrrW(KYo7s3Sb=%6+{G5FU@1~=_^yZBvr(4 zML}GHf`q_I=u>`!yn}9Yi&`Yf*{5B*wcC?c$CRg)uH(^(Cy;29*XSORBd}bkR*SW+ zZ0n}u*-}4#tjoURSsl_nNu)POb}YxV>)j?93RHnyn5=QyqjlNtcgXSFA-*q8(=dTa zfk|fC>f3Zqy;i6lavi#DI&HmTo33k&;~$h7$~IJ_kx`Jl$w0rocQGPI7$D1s)Y@A&kq%V-$CMf;kPh zeS$l5VtN0=AO+rYPHE_SuKmCz=Ri` zu|S?F!Uc`8fFYm_Ctr1%bRrNf6srQspj-Y(1s;rk?_ zV56t`g@Rup4+`_V=J;O@Q9c2QQu=lDBckv5%sjlt{d>dY_3o(X)~M(`j$TBb*Bm1( z4zW|EY?7l>XGs1H-{eq!AEAUOCn}}#+$T(Z;Nw7xiU@0IBW@h<%{?p)6XtmL)yFdU z{_Z?_pxojw_fZ%|K4ApLK(_o1vu`m`KErJ3GpuDK jt&1Q%26^)bB#LstvW%5r7g*&z%e*lr(2?XHy9~)+h~7#^ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MethodReference_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$MethodReference_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..da25a4c5551143936774baaeb1a02dbb173d6dd6 GIT binary patch literal 2337 zcma)8U2hvj6g?BC*~D?0I3EPsfE|(++bP`wftETHjGIyy$EgxiBwng*G6~z-yV2~r zN`6WOLP7{31V}9sMePGBkMN@qXLcR4S#LvM=6Yw(Irq+;Gqe8tpQnESs9?>&fWYVt z>%MjArlmZo3=9g)MB)}fxjN}+z2Wtc6?*)^*z%k#>$V%=4{rseo8 zW!_&lRmbt|wlu>^BkZy+CzHV#P6`ZDx#`}Mj=;G>?Rgr$lG1ES)wUh0)o{0E*}#NA zKDv7Td0QjP}2gZ<64pa8F)!xE(!>id_>~q7^0$-br3lrLyk;Y-C zq&m(30?UPZL}l?faJQS~;w_!zYzA-WBzd`S`^VAfE_uYX0%r=vBUuwoT^1Ou(h36O zb=#4RPWz5jP3umJGwJGjeZ3J30wt;?cDvtIWY)IX6??~)N?^>7dP-n1R+rx1xaC;Z zm^wU78qiNm@*rs^Hb1+$y1^r%vugJVUvXPWJ@2xFk3#xiCa~Z8mpg^ zWF1-ns#=Fr)}I;AHtlV}%#h2vb< zyXvNsHdSCcY13#ujgIUHOO5xNQ}J$Mo;Tnr-s!+N1PUl}Eb(apDgFXROOvV8W1M(~ z)I&ZBEO8vtugVWNp2M3QH6h<643{RpAYn9){))KsN$8y<^w&h2xX{&(6f+(cGai@! zhS0b0c0VB-60&i^w}ifvR8JwPp6`fW#=HIUQ=$A+T>g7P-%FCOB+36k^hI3im!Apc zXX5fd68e6Ud@f1;C!#N-+%G>H%Fo8-e<73~hX^6XEjCI^bHC%2M?D{;F+d+Y#8CMW zp)2^HOPFKS<{8Z5ub+G9&^5pE%@usuMP8%=H88pKCvp!kw)70S(i6-NKxY{U+!ki} z4cYQze8gEAGfR5q|3uF8i#(yo)Bi+L_&CT?#nm7RtTJAP5qS9;|D))dKVj5|<2s{G UTw|PKyumob_$lKoV;v*^0??N&zyJUM literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$MultiplicativeExpressionContext.class b/Assignment-2/Java-8/Java8Parser$MultiplicativeExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..8cf8c7887c0fe05700cc32e5d81639cc4d996785 GIT binary patch literal 1514 zcma)5T~pIg5IwiSrnCXtB8XZ9v0^`vpfaN~Wt?$}AHlXbv{YXM++iYV!X&p${VDzj zAM`~>9~^x3U-(BHH)+5^lYy7q8MAms?)WE(cx-8%>j1BOGQyIhH-`j zDYxtcZZRwsv?vYXaIUtv(=jaFY}k98G}6e($SRn`RffgOg=UDa8I~cQdeJVMu2yWz zm}Zz9u&iddf?M24VG1(}uHy#7EGMI#C@&dS3bg@+d=xP7xKeC;;yDGgo_LP;3=u_P znCPBuIyq7(o(UH|6%~e&D)~tYHN)bKZfA!(Eq%wNo0(3;STLyP#G?{Bsf9tRZ`T+~ z#0%}zaD$1muC+bl<~oBC44`K1@g7|kiW<}!>mg}!@G z*AIhw6Q0F=wPe%oI=lRZ;Yp_ly0+|1Jxy(cyW*AY3d&5gXb$`p;4Z^-xX%o87kGr* zv=wPua?pY@+`=3^=jrPXBzglqn z$K8N1A4Eu$(oG_y&Z9NLEry|6VdxD)-wQ*(3q!vqG;MH@iC3#cWyz&-?i(h)oYt8{ zjOwf-UTqMxfMP(%(dn5plEI%(r|7;boAjrIa)5kH3Z#K-`4^@>Vyt|OsnT~`i@}Q$ z^WE%6*+Qn;#1h?-@fo7uzewcfut=Lk-u@Snun176-6yEX&Q_*wIR^(KER||*v^vODZ!uOfAB$H zH2Prh)xThj#zajt(SKmP+m^a%3;HrMyL0Y2_ue!2-S5|L02HtsgpVQmkRR~dYut8( z9l-$31QE~>M2KP9b2U@3>^e6KQd){D!;(cyDsiY7LN%eP)}D|I^XXD4Q?~4y&ZRPK z{a{JA8&Vl{p(|Smy(;XwA-P$xc0@ji2*ZR|qWXAWRCryqsoiWe4TBhB7$TANhIxF& zu#ztCQsTPFWlb-d+;Q?JNw;eAM3Z!!Va_YPYKpp$YLlA{vBnL%Y&fcuMgk*2jA|Ie zS%%rZ<@IPV1Xc`bsC#Z#`nRMfhAP+$;vB<>Cp9+{A%z`965|>sFv&1RsS3N>5r%ZS z?1?g?FsD})L8;Wo5J>vVvb-JBwu|+nlhP^HB8!mO+Q}Mzsy;^EXML6n# z<-|dI~MCdd! zy~)H{$;7&o`AkrnQ%``Ost9ItlP@v+yi;lfJ}UJK0;#VA%_7$hn4sNljz8`^?SNZ- z`9>G>xY`CT69G{mk$a2e6Ab2#kj%cqc^_O6U$dVrk?$Bz{lJ1t3N}pP`oBmn^pgA} ll3#yG{8((NT*LL|&TxbFaZ(r{fhBU>_53ESG1_k-{0ErfX*K`= literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$NormalClassDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$NormalClassDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..329cbd613665eff9228327502da19cc6b86b4c1c GIT binary patch literal 2212 zcma)6VN)Ab6g@AYgd|G?X(>{`LTPIfDyg-$)gVe!Yg1FkF&P|ZoN*TNz%83y+}(8O zPw_waLBG_|4^I8+k8(WkZ9jd&75STiYLDxN!j==3o zt5t2g-eKKz0^6&$VTb{~pR@yIEf892n!@6cR&eIOJ7-3U;MqnkO{oL(Y2bT0A`eg%`a9N;q zR^Jy`OBPTKOBw{0U2j`{K%FZBt5Kcqt7FM}%)Shy=MRN)cuQb83hNAxrN>_TW5`v3 z>j{X(A$SMoz8v8SSi*7+ZyUIV6@go+!$>qlU~%l0a(nL%jtv~MJhQPFjkGv&NCgp{) z?${^H*|82CGZ=UjyPp7TCN)O+h8AjUQR!xdM<7v69Ld8JoN=Kdp5>*wlmZ3+)R**i zjFj*!2_;P!yOfShV~qi$?Fbmd6W4Nj@I zbPEo5!entz2wc`nvB3z;rS@H5HqlyvD|#)_I3AA)UIFUQ0NsyuK5z5C6=eAaOx0%c z+1JSa%y)rz`J7bi#a%u(($EKK=&y;c;|`xH_u4Rbu~t^Oi*JyRr~ih~_iz^(O}NIW zipkZ=rPr8^gTKZ5{FuQ#P5L0BlHod4N{d>h6eoU1=zTnh5R?iDb75I?al#&<5Ak7= zFdq`;;{-|QM`$Do3n5`4PWYZsUd0hYR&RWL=~pcN!q;#J1#TC`BTN=;u59AtAz_hG z?IAl;{pl1OPOQ%lTli!Me82>%JLUC1vHByX*WX~Z_8ZnRP$C&U=}_btv&A3qDOc%; zS<<)vE6F>_Bmt8Q#!0exq*a=DtfRnZjCbj+2?{(xou&(}@GymhK=!fm%DDB^ za6Rc}Z~`Y&n9-2JtiYAftM#Vi_6)0T`_ery+VX*HTZU`+reoI}9v=Auvt8-8oI_~~ zTrSn?<%Z*Sb;I^8SATUwcl)+)_N4B+QtB<~_DtKbnodVnQ^*LcgvrJ<_npq`p??*e zreO}J1Wu9ZdEb&_>djK)1@q7?!|v)e%kaGFH2y)VAvF2t1=eHvpEw=!z?5z%hP;N; zI3tid9)l;aHW@^D5LVweExloSKDoXSSPgTvUcZ!#$>>Rz)*BL~a5fUs_K`2`jyJB% z$TEX-D5S8g;VYaMxD;FSiJS#yHci{~w^Xa*`!s=JMfXxz5jY(RUnM1N>1I*H1r2Lh z7br@llIemGxL#_6e0*A4)$*PqxTN80MQ~monf}N8r|Zqu_Vb;4wQYe)>9d6>aH2** zvbPP>md$=|U%D-0-{MK8-eFdO76j(Z(KS%|WTQwC&S%`DkbJ8G3uD+wRswlKUnu2% zkcdEf*X-Jc-*-uTd%|Edo@?ZDsG#Z=8OtT!g4oES*1S{xF(C?EjARunRFxJl|8Z#w zlp@$^>Lpwo-lMwRkw*f_Qn}6w1QJr0RN&eafd+#lP-%-JWh6vOg$>&EjrQRa zvq~@nZ<$@E@3!TRsa(&8YI9Y!fkUh*J^zv8ah_>)o5~KRiRATOovyg?96A%%dV#a! z<4D~F7Gujw$h4ASm4omcCpeG=D~&SO3jeJj$tPg8GQXUBhvZv63v6(mQRjuHTrbC2 zAH-QdqxBVB<*IzI4Si=T`82Jw?~#tW-=(RJYe)ouB6k%`s*=yW!$Q<}58v=*0@nl3 zw;`4U&&iT21T48I@F$wyz;_{lVj*C05Y}Q8@H0)n$IVH=(g3g&1^hx&j?xey8RW6C z{0F}LosWZ>W*9vR`Hug~G4cR8Aol2>*dJ#x=+N0ry4j+uWD9?;!m@gkcg` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$NumericTypeContext.class b/Assignment-2/Java-8/Java8Parser$NumericTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..312321e286c0b5904b88fbe94dad1cf8869fa6df GIT binary patch literal 1229 zcma)6YflqF6g{^K-9DDmhYzfX4=Qe3Wc^^GNr{PRLaeETNW=G~jLqV*OLnKE{uKX% zCK#U>HTcyZWxU&#Iu;uFGIwWs?>Xn5JJVmkzy1L57?zG0A^p@oupe&NK_~(pQ-tfv zL8;+M(Fts~^=e<#ectqB3UTN<5(bh;5f;?+_3oYsoVJop$aI8!-gQsP39DvvmpLuh z_BvMGwZpL1C^!9}W7(c`1MA?v6?8r6>3E$D-|?ivoI(b( zI%M?i?LI-VmR5thyKifWX%bX*`56kSaxl)@818UnVjee7nAwze z`{grxe<(2#Suj9LZTj7yE!La}I;$ADvdcG&kXRR?eBy_al{Gw`M*q5rkVkcfFND0} z?9hM0+@yYSlb=F{-x4?y=5dYJ1>P+}<1Zjx$!pptOdmr#&{y^h$O9GiKh6&{K#p(R;+{1E=0%DFcQg$4F9a`pqae5)JyuYYDe` zjif)|dPYFL`V)oMn5iD4P&vZI7$S~Xzk>nC7v$&&OMJ@B=D7UM|3I#s2KmMy-~WPW eF#9ZJRQi!nua9;kKxm{)bxR4uJ(w4N!VHrhMM`ReJLrOvEMpLt87@`bTNp_7{(Qb=-&)l472?d(j8K5 zOVgF2*0OS8j9@f~Ycj?#&amLwo<4#MfpyK$tPRms@0RxE(D8SJm|z%ool9`w1~(%} zU{b~uk_@Aqv@`oPWyqw8uH1`d&!u+-;Eaq}0XV{sHOmVxxU-pmvH5gMApf^B7zXm> z5Ndc)GkB@p*yCnJ-P36$a@aAV@CfNgm>zUp2Fejud272sSWaeFUxqkk?+XK+YsDay zwYs5NZIj^F`U2Ly%5@PP$K*Ds=#3Ov(SurVEQ9Qrs$kUkF@ryqCbE((knk(R@&)qS zH_G-vh3-~YW)g;BuxwGAw$($YYat;|2Q6G~w#_Pkq6z4ji{X-J1>NQnZ&}ZpExOop z!64t*7mJhE$NKd>djsOmo~!d@3TLtB%$TN2Jwk5~Ac0{H^E58dUlM-$0z#Qs(tiT~ zXZog2(ijly(kmKMNYf~yXPxLsCN5EQsNf`3ENSuDb5!%xvH$OJR- z=m~~;q2J;rZThfeCn+>`Ir(UvI7JgSr)Y2DI|`+Dz?I;)t7Ip>;_4Ur?3_4E*pR9S zNHtnn#w{lyL9?Lck0n2y1$WxRY2!BTIDxAKAgIK%Kau!|!R#p#nQyr6gDB#&+uAAe z0Yj386#)u1MCo_`1v1?aq7z8t9K?@%c9m7E*)zj^n#ZZa02O#Z!VBqhG)8G&hx7;K C>XK>z literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PackageModifierContext.class b/Assignment-2/Java-8/Java8Parser$PackageModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4edf380f217cf6a763d89e3a0a67ddde8c2cd219 GIT binary patch literal 1053 zcma)5O>fgc5PciBaqKv4K1%s2A8A9eQ-nDnfs_iVii8MCtBO{=Z<{4Dq-$hvs{9p% z1V|vkfdgDXa6skCk3!5QZZL@uz07)dX5O25GyeJO+jjsPsGGZnL0)7Yi26BVd>hQf}b$#3#!2}e%%Fha9;!hUoh?gtvW zm{Q}WUI2#NmWb7ZFjiDqOOmX^Z4fa-X{s%T#R*{&2~nk`bZDo6Suk9{MY2nDTY*7e zK)zl!jL(=ohVhZEwBuy6+GV{UOM682B*7q`SzlZFg8Zj(u#F4_zeLu0MWL5*B}vds zn!zYmKa7J%$gjz9l}Z~S-yr~kKzZ#4O3zVPJ4UJg6_pG$NoH8lh~y1Q)>|xVP_PoE nulx_>>@>(b0(t)j#6WGxat*7)lXjENGVyAGT>6)F%^s}Zo%j1t literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PackageNameContext.class b/Assignment-2/Java-8/Java8Parser$PackageNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1e854034b14e0df4ac7aa648f6bfcff797a9af60 GIT binary patch literal 1196 zcma)*%Wl&^6o&taL!66~=EAMCl+u*qI8d`d0x1ucIZaTg#^uyb_ z7&yMw=ejRA*E?MFEyuLmZkIQLI#~rdC=3N+JRR6$=$hKvBT2e#Iz7Eg|OcgYd#*kXG9Lv8K^fA4Oi5wEOCF3kZB{rp&<@wyiI}HoWRUJZ=`bkK4H{0D59v^?84Q`Q>)>h_Zk;gG&=}!h zJ7keRv!mV_@|!-Xd2Aj;;?ltcMzrjvI}khkffb;OF^#KxWE(PNn|uC4*CT%_hC`PT zdWd@r<=6-#592CXu|S^#$np&HxJ>H;{ab`YPe58L?n<8_eWYiGE3~G9b9q4PB4v-F zt5I}LD<>&BbA;r-3C}2WX&Qcg8vZ#&lY?V;iAu{_ef|sbpN_R;k)YETNXaiLw2I{@ zVUG4dy;Pk2a2z}m{)%2)!%7r*hX8~?x&8x{_sG|eP|?2PTmnInMA-1C$ZM43H@F@^ l!Ag{_o(7qnguErlyD>yUEv%xU9`5w{(ViuEl72Ul`3=7T4eF^1H8=gfJv=ZJs{9dRtE zNElF|F_b3$D(yK(r%s3Oiq^+IZ#q3*^SzJ{Lk6wG!_bfDkf;L{w-^c&UNzhx~LxyLRS43>H0UNFRK)Dwoq zhU@X>pm)ec%Q@`QPOg8w^9&}DZ={+*d9&MMFvk6@du=|XO|x8QNJgH>#xXpf<9IYS zk?k!SpnuMi8w~0Fkd*B>{jpF@dNQKv`~E;2@wcu-XD5_yp3qRy$ToQpzVic`UZd_& ztD*_x0mI6aspC1vLmJl%T^!KmU|7XHTJO`>8Weg1G%I_oe1r0Z-WeXynvnbI1+8n8 zJ&Il*N2jcOoT8KGh+j+4Wcs67`0W{ZEk@Ba?N~>07^*hpEFSY21k;FI>+5&~H zqclz^(o?Eevc=Dr!I5xHu8*-X4tz-fLLguHjlw6SE9WR!Kd=;oEE0G&&Md_&%JWju7Nd5(ii5oQl literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PostDecrementExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PostDecrementExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..3d6c4a4c4c38b148e685da240f05ef60a8e15b3c GIT binary patch literal 1287 zcma)+-%b-j6vn^lBHKR;v_%x9Dk|c(MV1Q_O-f8mSz}ElL>lfF7|BXI+ssZ$?~G9s zP4oeL2QTzSqZbBmeG^~8cxJm|L)*a3OlNw|@0|V4xBKhQ_a6Z6W5q;*A@j&P@a}GS zGUU?47{fx}#ll7qs;7R}?Y1QkLq8DJKq%f-X^g`(k+hIPnxS+&XN~Vj-r_~dmcku#CEFpaYei>E8iFuv*wU)|HyPTOv+ zxMkuT!*riwbw5;GaGAjjW-VO6MTP=t$EB8kh?ESDUGD=#V;T|{D_kjVX>`HDC5@ir zU0;nP=i0|d&S2ZcfpWuKQDGRXlAsJzbzkuHPHUUXhPU0M8)MC_l2M2>RNcX$Fj%os zYGRjniC`CN45>&M?Er?A5wb_H$SMt*^*?z@28M}ELIB^oz(=*E3zsN8D>YlCJdKH2px|GSINFvdL2PKMdJ#s^K`ln zgMI;-Qr42vhVu#NDv9U;dR5*a=e~taxAd$zN-v%SnHz+>Bgp&z5Cf&CN*PPh&TxzNJk`~D MF4N~q_v|3`7dd1@p#T5? literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PostDecrementExpression_lf_postfixExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PostDecrementExpression_lf_postfixExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..941768b0a1afebeb57ae99c3758232adbfb1af40 GIT binary patch literal 1113 zcmbVL?QRlL5IvWrEG&ya>$mt(TPq(%G@59F(HOvpK|(C)-)2j1o3+bba`)2kDn5d- zCT-$J^oP;EK8g=voVy?;X^rBKox3}C=FFKhv)_My{sQ1JuA7K3B%e9E&i%F{11>E@ zF=rxX!$h3n(bUy)+YeNYcO~y}q3XlFi9cc zFx<#D8il4Wx66)Do-FU)Ez5yWZjYChy@Hn{9K8yFWv% zdIRFcOxySXW1rp`E|86BfBiLCT2rz*dWoV9I?ZA!_YsMMNw9?o1;0V8zDJ=sTpTCl z=+yAhEPm`wqDRng>E;qHk0b990%2gj^bP4(NR_@KUHpV>1iDHjq%^9sk8J&bh(lA) lQu^ZGKu#S6c}F1c4?zrE4XZ3+IXoGz(P-v(4<#@G8E8 z7kZ=73sY}>5#PdiW?3sK5PLJj4Cj33?0^2d3|FP7tcM{-8NHkvt6jKr{lO_&}vG1Jgvx!YtAZ<%>D4IFP)@g&NCbm_Op`O~1=y z6vMXNdPhw-T~8c2jjk7lb+^rN~SbC_pH5xEl_ zbHT7~yVDp-a_)4v?D@j$wu3`Xj4W~{@)j0xm0|62r5R?nec`L8y4q#ibxV6Dt}!f* zDAw{r#RZoc6tHCB25vGGNjomJ{1c>PaO~CyAR5zzxLDzOX-}hz7H(|okjv^ zKE_P*35BlWL7Y&eUH6mB;n#=rXx%fK8?>(BA+0O)&n6Lwfqdl$3hyyjIYXiR71tBc zRT9wy46AG+*W7|lxAd$zN-zBnvOEr{6J+}z#6UT!Qo(w(Gd!X_Pj$7PRr*}%o*m5o E0YnEu82|tP literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PostIncrementExpression_lf_postfixExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PostIncrementExpression_lf_postfixExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b8cea744f75f3cb5fb4a46c1a31349d7628ec61c GIT binary patch literal 1113 zcmbVL+iuf95Iq~GapE{6X}J?FrKRM82nZyQfa3&nrpmAI z4?MsN2p$l;@+Eu)V%7<5q!yL%;8}Zi=FFKh;~&4idcqqgZknQjsv)P5k~Mdoz`kG#|zLuO66-R&ptU{WKgTO6ZVYr#-<`9n`b z=cbgr`i6FvwyVWM^@x^_m^p&xRrlR6O>jDgV z1Cr(3Q{y9y_w>$ihHOIn8_&tonv&JgOB8L;X_hO6Pe^^(4Ym-Y;1@_VUQ%cQXD0~- zIyHPekDu>$qsP#%=;j>GPath(lA) kQ~KgzAjkHDbP1%l2V&r2RAmXv(aCU$PK&_f^sFHD8|&vC`~Uy| literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PostfixExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PostfixExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fe0cba50c495a57e5c722e6346fc067687890331 GIT binary patch literal 2206 zcmb7G+fEZv6kVqU26_S73L+qgT z;l|TqmY;4cgwy*(8qdmVCccuDbv==ar1M%PE~`dXiyzF!wW4Y$IUcw2azrO2_!vf< z%oWO2Iag+p(8;jmbX%hYQ|gY!b6hnlF!Wn5Kd6Q}M;-Z8;A1EAk;U&eW^JS0>&x3UieU&6 z?7on7W%>*q>q%*Lu|6s?@Z zxz#ia#Ne}!Yf9baB?fmmlA>vtsui~h!}K|4!qB*V?QGCfS^K0{2LHMt?>v7Z7i?v< z3)Na^p7nfD+u;ut0p0Bw#*~l*L;EV%jYl+K$}FYQVKT2hPPa&B^%cv|S9cEV_Rujo zQ>qLzBBaTQ+fhw+79(^e_R{AA@PNJm7^iiDevQISPk=WXbh{7HdIa}t`pIyO);94f zc}!~<5n5{kyjFm>HsBMvMiGO{3>YRW7^G;>e~7MH=g*j=mo8j4gQgrTF50KG`~zlM z{@TDVoMT@WlTa~>AU zF9edmahrB&bO8#V`ya?iJ;)ydIjMlSF>kWm!ClibB*;e5YRY4Q{x^u6?~(PAT_o!# MyF@lb_C7lP0Ts<$YXATM literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PreDecrementExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PreDecrementExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..eeec5c58623493739554fc398c8f4afc23c6cdb9 GIT binary patch literal 1274 zcma)5+fEZv6kVrNJG~6h7D45r6%czth6fW(N=!@#V@*YrLZXQ#1MHB2_6#{QCG}JM z2OsoBqYnmO{SLpwxMx~%v<1y1=bSmS_gZVOz31DH&tCxC$BK@aK<1HsY~S6ml}9R# zI4kB0J$#1%cBn6g=^?Iq{s(sUz zeoL9hw@uZNzSAbtS43u$RNIkuYu(+Ws*be4T$E@_+UoTHLmWLMM3BBvv7U>p|(7KaKSNE1k`I@0m)1@#Uub|8mE zZR?m67?0H3a6F$RsSGA?*}xS{2~4xcq=q{#uv~0J^3QKfwX_`o&ls2ufTyVI_-Em2 z)>=)VT>S6e3B+sMLxHh|BWbq89=~PY*FA>*yl(YN?0tpCQ#Wh|F{8oU*Cm>nQ zZfGB%z2mds=w2MGC;T>td0q>AH{XxWl=CT$&YU3icfwN+<(ZBoXq>2*D>EN4_MVSD z^fY3C)kMPD;+qBB=qJqZ9_WeZ@cr#+bf6j5Hm{4g$!meX++hU9K)&)76K^n5Il)Bv z6E4LNu*AX|dMwY8vtFRcw_IzE(@XyXnH~gr$sn(OgJ>v+EEOz;yTC2p^UND(f@P%m I5ipVZ3Do5~@Bjb+ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PreIncrementExpressionContext.class b/Assignment-2/Java-8/Java8Parser$PreIncrementExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c2a317fa0acf63f7fb5c4da234cc0d1d4030ce0d GIT binary patch literal 1274 zcma)5U2hUW6g|Tt%g53JwN+cH*doGG*+xw?p)oO_aSdW)vF}?tX|{#gW_D@tr}!Uy z&=-w9nELA9@P8QZE{LmunoVYAXYW1d+;i`K{r>4QfQQ&t5n)I@wa%>jyOwmhOd^U4 zDqo?r!bOJCOyN^$46z+s*xm!b-r2=Y<&da- z6)Ox&p?X`k>v6$l3d^{x;R;q6*2rTnXFJYNE4M=Ve{W2^vhM@uHLUxpgK?nsLn()Tm&-xXZ9U+sMgOuFNhG*J+e9^alblFkHnoS_|}6fI=rAu4kSr z@1eYlqEMRYP=Z25HwrQYDw^VDE(kuT0S(^sAO(1uEfhf=emMXS_o#7VkIpU2HK@ACd7z`wS E0MC^=zW@LL literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4a21bc1990cc6163c735eee72c77bf6a34438663 GIT binary patch literal 1765 zcma)7TTc@~6#k~I-O>xtq9Ra10kIeCf`XtWB&5MuQyU_LSF*s^ES6m|yT$TT{0}DT z3q~IdzWPs0OiWDFL=*JvrLeT+(uX;-XU=!dcP=yia`^ERfCc0w_!uHjlwDwUAP`4GaSJun?<$@5(-dgp!rmyWd>VmGByl#dOgd`ypMF+wR{cRk$mJFR0 zZa%A3`H^BSRoWs3a#hhPa-pgiM!uLX>7pVlnpqX{?vyNQnyGGc*&*pcQwC9nj5nT5 zvLLu(s=BsV-x1s}Xy=BL(8(Zs?b{{TCcW+`;z%%bouqFtjI{DkI~mnXwJMiX!_0?q z8CN7+jiMLV7{)G^9Yb(V)l_qyVLWxwiWJkU68af>JV{y{xW+{UeMm-e9fJ%}POTGe z_6$R*k_XUeyIZwNQZ(~z8gQaW%|L3RJB>wclh+yisdSO}*`2j+3B$xGb7KnbUZ)k> zHRgl*%n(~Pm5moql^wU*A*=x4XYv;MCQZ%+fx`Ea&1cqUZ&^k(ABkh-4Ce z|2{4q!2gy$i7%}|>nQh?)-l|swFwY$0Fh?EH!@8j4WA7dB56gCGKttex|)r@BSVKi zWNpy6CyI~sL@PF6(~30%e~>A?B_4p^j*?BjN6$OjIyr>NH*!A_%>5$G9pqdN7hcpzv)EAgljoN9xN`2>}T}7LM(fLzRU*<_+Ulx*_Cpl{6ReT7n7u=qQ(h+ w_dF*9X&a)&VBp;BBk$i}b|2T-zivR!s literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArrayContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArrayContext.class new file mode 100644 index 0000000000000000000000000000000000000000..32ba6e6f0a6b5ddce0e15d894835de978c04d9c5 GIT binary patch literal 3144 zcma)8T~`xV6y28~0TMnfA|ggUDhXJ}TB{-ujX_E<1e&C@wzfKkD~^VVYcg2)Dg6(9 zurGGC4_)@PKdP(y&V)GJ8CH3jlib;RpL6a#`zHVV`{!Q(a(Es`hd^T8d~4p>GM%P$ z;^-8(5LlQgTCQ}=dcI-1^1$sy7vgbrC((mmftet3%dz%M=djc$$)9tMV;;6R0{y$v zE$`Q5dtoVEe8r?j-L!X&eBEp|7YmtU!`U@V+pRms+na{7Z@bo>H2k^(?8P{e0^`BV z)x$TkWbPg5t0Mc87{H)FH&a&|uca+;HC;FpSk_(Y)R zNTVrmHcbt$_I=l?8%3+>vY>MU6TyNW9=vg6vuQQ#R?Bgm7q}6GcwHClrfb?YnRle= z5*@+2AaE(jTeW0;Cs(UczO8*x!+5)|VJ-EUl5BTJ^SLw@0ZX0kk`2xw-6SKJTHOaeop>ERxoZUkte@F8fpg$y<8wZ5@Y^(E`~)QChGVh!IP(Fqcl;{w1)p8&m9fC*O?=6xMo9RC zgicr@^cHTn2$x$Ky5|OSB=qU%EOB?D&^=M;dqgkbE;_toQjDtl_}t*~dkpE)_p!*A z9Z&@=V3|+Vfhwqjkp(S}M-=pcxNKC4Y($EcK#FWsifmMhRi?NX)${eJp4W)JABCQe zLKle6MWGj>(Cb7$K%P(Sa7T#dG>qtbS|oHOO8#z?e2M6XQ0;2+qrUv8F26O*IPyGpd@uXG}2uz&OJAgmIMdN5(P6pBTp(pE6D`K4VNVn&|ltuV2-p literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_arrayAccessContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_arrayAccessContext.class new file mode 100644 index 0000000000000000000000000000000000000000..85733ecb4818a7e17adf602f3986366b83c417b6 GIT binary patch literal 888 zcmbVKU279j5IvKP*?eqlllpD^D7H0e#1#}QRD=)^BQcb=^tIfkV_Dto%H5lq{uKX% zFMSey5PkLEsGy)A&P`Vhh(z3FXJ%*boU?Og-hY4n20#n*E;5AD1GTSK)|5_I7m>v= z7da0u@`R;W@A)b+q4xK0`Fa?cV8H&-(e+`-?Km<#GKAcnAPUS~!nJz$-)dGnjV%{N z!rTOXH%JUetV<}s^H9cd!XgWYUem!q>4RR}<7X|c)xmc7Xj|E!)$enX5LW8l38aN- z1?jJ^HnuF;tcQvvTi{V(rj@#wBi#HCGD5Z;?=oSg8${e24t7{?s+~|W-X0sPXeZj` z5y7c9I)uWwb(<#K_=~Vcb2^btiGB(wZ4t^FM)jXOR8Lcmylw6Xt+){nb)WAA7J7D~ zmFtgX83_3vC+2>f$Y{MzBok?eDoI#mzB)~vR9MWTD$8WAEXb~t*c0-01&-W+yWFh3 zgmWk%;iT9iGJyX9Isc<%PT_P~P!mt`JzK%yi(jX6Hs^m5dj@C4TIkz?AQ-4N-=Xjv z<>p%ymS3Tifn~`|uzW_v|AKRpbwCvio0qJUTB Hxs1XOQtI8F literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..32cea53059256377fc311c7e40fd0250f56d21f5 GIT binary patch literal 2119 zcmb7EZBNrs6n-wlmAx?rit?r)h}(GCKooRfLWsnfu@E49C1tx{akS*NL-;BF2R~>` zH2T4yiHXs~L`^i&|6)9C2iA5J*oS-C?mW*q=RVK9pZ>gg3t$#^B{VQZ9>}}$)S@hO zE+jNE%s4&_%vEGv&#Ss2t0g`sxNInzdT(z>a9yXTwaUiYj!?E`u|KD&2H!Kn2ttz3 z6h#POhK!SJ(atPtMgDkJ2zlQNXK3E!#!|JyYkUmT$-)-3n5oF>X2$9#mroTmv6+!o zqarf96B$ue4P~2W>?s`RoP;Pt%Gt!c!Yk$3Qi%remY2}%O1JtvKD~uu)XBcUjfYw} zukLCkYpd#&Xk{4jVwU&@7o2w43kl;qE=XvP;vz0F44!UwhTycKD#l%g;pA!eE1z1G z(8A1AeipP&pA$%2Drz%RKbb}qGQ7U_+m&n(i*_Y}hq z#*i+Z+Mo=x$<%)xo!Q(uhQ>Lq%o*YZMdiin_Bt0U@_L27v~Sck7HRFO>T5u%&@P)t z!(%xwk*_t0sB8OpGct_3+B(^}MA>Om*7GXESY5_?xrcHyL~Ex#ua@~9Lm-*TGlVR2 zna7wRdyI7r!E5Jzg`N&AN(N$xEgN#_(Sp2FQ>MwZk#o^A;ExKYD znu=UE?rXY1o#j>Xyk!xt({N`t3q!x3caQG39$!N+^!Vz`aP?&6=)BrVK4Q?33(`Gf z{z4#D^wT;(Z~X|+6A($a1_Cc}?f`*j^vZCJ)}Z-U_C2kGxK67J5U~LfH{b)MCXw<2 zVm2V=27IK{G={u@xDANA0iP*#7$aUl!UiPVfG?Cv*Q)~%p!uZqQ1>geJwF;aj0PI` zD}vc?lsbw`4bV-|+@;0@UOYX@wzuay{gcI5Epw6>hy$%d@6hoCv7rNWq+g?}0cMp3 zYg_FqKaj}jE=1rh|maT3WDFUc<=`TdV1fC;P0P292~!z9IV64F$8inKR-zD+Sg U@eaip#T>;r#c7IWBQps71t)M!&j0`b literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..873c011e8c3f96fddc9d6bdb9b8899ce6e447ea1 GIT binary patch literal 998 zcmb`FZ)+1l5XPU$#a!-ku}$iqTGMJ&Bx%GL5EP?A2#Aq*6kGbXY}2)zUhc}?rludo z@8BCj5Pc!~)(<7lCZ`^VD8V~!XYbja-|WuJ*KZ#`0qCJ_BS$Db5y#^0mQaaQF7h~K zqu{|tk#Id$hiwt*P_>V5x78%l!C1EETc1rr*^eVFrA4GwENVw4${+myC(A>4* z5>_(dhe4ucBvlCxJP&1@CUhmoP+KY(3w7ehzI@eFN}TM4&-aezqL~V#^+qF^B$*Y0 z-xy~2*A~O1*X%ZT&B2yERLsHd$!VY$1KL<24F21}2>E_|APGyuAd>!Myf4*`*biCp z4y87g8bk+jO0XKu0l}H2)X0Qee<+w%GOhFu&wdn!Q$Q$hYcYEHR2-!-iY5_rn!6oO z)JQ%G40<_p!J99*$p}SXCi-!laLaguh%4O>MUu#b@L;h_rlmn0Rc>AL^8-pbm?*hSlyy`(8(3r20#(@k;@==kzeDN_x$+BQp*D-Mj*Xcm OTw?1oyvpBYINt#j>;?q@ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..19a1586c92d41c2eb67be65bd30354455ac477a1 GIT binary patch literal 2050 zcmbVN+foxj5IvIs8*(8eC@2>dMa%^VK@_YYRtiN{Ln;ErE43s8E+)Iw>;}W9_zynl zgIfAv;j15I*}EI!nuJ?kw&&94boca`+24PD`~;B26A2!Mz$@iQSu7~R;6g$d!&BG7 z#7bE)3|TWwMJw_Z!4*^0wHLKR!3~2(JLSEdL!nj_alE2yCa;-(^gxo}3!)c(hSzSg zg5#Oj^Zb2Q2<6xXr=h0rDAsDWSR{7WUY(kuZ=ahR)iQ4^EX8sMlzytLX!|KU*Nhy` z>0&>nXl7ZYj^;iyv%*X0W0-NfuXFRQUXryVy=b3H zYswP(8Kzq?8+?xoPDk1b@gs@>3D<(SjzNaW%N4`Wv!rUOxy&#XyX*nT@ofn=7zSJk z=2XMv8W#Z!VK|5pjFKWawN`Z6J%&Oo=ZY}VDN()anfSJq+^ryPTgff)nre1R$&e^s zTHy@YSp2_Au6#Q(3|%XFi8F+As>bux$}SgM%5Irf2KU;kkMz?N^<0%wgptbGx@4GZ zV!K$xL^QzzXtExra?-Jw80X-iKzC1U~HQg{NGg%|~+nwbG z6?f$xGd$~5j*WM1?A#tR+`YJK4C9W|IgP+Lz1C6s82~;o+@U#f)9fC+Gy(#NsMq@y z-6!yVqA8;d5QMhU8TwA(K7E@20S6Fh1}u~7Bp$Q^LJlC*49Jpe4DnV#*a3u_0nf>m z9!(d(OX*692=J|DjjHq;His9##%`VMDpezi5IhWlr-jS h%kYqF0^N4g=IO_4<@|_jfb3(kA+if(!(s*tRTwT@qh2Dz*fk>%&-I_`$9eUwNqqXbPm0=}z}DA3F+Sf!b=TO7xVgTnk|y(J*3& zGc0nNNA32JV_1(CY+7@-Q>;a&V@D$4qcA=f2^aWtTqQt@veR2brf^V}ErC^Ov26|&_rZBSvW zl+C?j7$){RVZf^)rZF$er>dkkHL57%0%ST(w@Ec7giAUuFHo||>N+~eZ&RNtdwHYU z!)$4%$k5B%c4C-uG{|KcN*^d$%&Dq4TW)q4!!w6mXSSpqp_3~klB*mtZkG~eu;%b3 z&9#GfgL8>IV3ONjr4jYywgIiVW(ZryZ(cp-7c@Z8Se|y2U48ZW)Hy?GCh-NeyyXg<;4w8`QMUHkd5p-a>}a8}^6czWK)4eaz7R$Ta=?0wZ8p zLXxg2`ZWtb-2tKau;2dycRs=Y8~tQ>OxJ*TmAXgQC-{P{4noKzgq(y?f-d8!MVPiS zbjJs?MCfy(#|Zb#3*F;|9w+n)R^c;>nW8AF55@;KK48cx9l;vC^kLl~rRgeGAPVwP zq=Ggg9tBMjF5{JA(<8-{Eky<%DK@=Q%utFAuQjK<);vq-O)qr93q42ZFTK!fUg&v3 zKc{ap*XE88nx6Qx`SOeVaz0qISESyeStkU zAz~6DPQqh?=JC=^m^2BKPQo%l=>x<@@EaqSnD`S@ztgR0mR>PbsTBlLtMud*3Kn64 zqL|UHA^h=c8*N%^jo$2|XdzcfK@8?_;vdZag1*Ej%*X%2q7NdA&#@?31uTPR48tt+wkvK^yMvTKB5?+_%%gwl6*r^`2Aao S!pYxJj8OcZqA=1A==mSiV#=xj literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a06911c75b2922b0aa17d3df25ec3f08890597e8 GIT binary patch literal 3662 zcmbVP{ZCs}7=BK>Q7B~t=41>QV`Hn~9k12Qz>5k1{^z-U64~OKJAYed+D-H-IFT zLkI}8-qzN%%d?tUmSzYC1dh923}$ponp!bcGAy}nh0%mi2+a|+AS^KAM$Vf0ie_$P zOIi6z(loV=`^6=rbbr-(T@?^Gv@ES$r6{*wj7KvMSV5ww8Ow=OQ7f0n(y>g*Tux|) zRWuW8qY1NOSo(@gI7PbHV zxLf3wE{luFLV>yb2`4-R`#kFrP6`aWGu)Nd$EC%zu~sVB75b++C6K6P<>ZnyC70(% z3S$swLO2`2D~Jl5ZLCiOn#OfQwJZ4vk>Wrl!%~r&4E`nEaUf{Ik zY?$@iU*KXi-RfkBR-y`A~FRBEmX7U0<#QB~@?KlY>Ol6XDb3ByHja)Ky zN1&7J2g(F?28p9Kr!O0tRWVu7cnx5@(R7onF|H=H;qsbtTV+*hW>+BQ*^xcxTkY`t zOnQnTKb^LhJDbei%nF3%_Mi(4c=UFLd8-S!QMoGfTtOLRgYz$t@@T(+dvF!UmiF)q zj;|-dKF*@VG<7%lcuB3;KCVNtzLk1DBQWYIuMu0KY_B8hZ$ttYd{zC?J7*ZFUVLd| zQLb}rqOml4-1ZK2qtQV3a3*_#?5i)&t7*%D=nVpGbCyE(grQf?hVOn?a*$c;B{8tbE-?Ek$B8OpnK2Z5a_6B zbnfg6G$=i4pROZfpH>nWY@{{l^$x7=Sz~~|7Y6wY3+RHtYq-GYC_kM>kbeQKL!H6k zCJsJF@G(CMyv}En`fB7;J}=@DpB_T1LumC9J|pxpu2cyps~MVy+LI)-dC{K}chwKw z;)ni%=rN2VU>DQRsHzVQwNGrK!z=wICirCllQ!uZpK1lFpa3Han&|N<=quu``=yxl zN%6HS#dY|knDk5W4O1j>qgs&b430Wmdepm;ZwXELZPKvcCOsm0$`2j)Lw`r~O+WM% zKlJxR-@+Swdb**@DZR^E`VWLo`^jJRlmC(EG;Y_*cRTXkUiqI0y@O0Gp~oTgcnLof zdKcMRLZ3tE^Adg`bOy7vgnoz6?mxx_b^{YUZR3({m%G5h&@7E{5fJn zPZ1A5WeM0r?_~KC9V44~i*M-<9i+d#pGcxs<04}}qhuUlTtdtLWdfbx literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..08545f16b81f278cfb408b5b82a23f716065cea5 GIT binary patch literal 1018 zcmb_aU279T6g@W^v)RqYHmTo6Yf&U=#7GbnDwPlrBWWmY>6?bhb{bYUyJdD#)1Tsh z@WrR152COBDDh6RYD7c{?y&dHoSA#h%)R%^*AE{7w6JC)Lnu5G$Kv6(P>ED7vN&TS z=fOsva64ARhKO{i8prn=Y8>fcBpb7%JL6Ec<4DViCgdIkQJ^;ocdFfgi`nSZ_HDR? zl{xutkZ2i6Re%G}LlI{Qk0ooUZ551!I_bqd`MRZ)IO&InQQSY8!Mx}TgSLEMCdn^* zgq>=4PUF_%ROxd!YWwDb%N|PRf}3&@=*3BGtPr;T>jeqfc6=ZSOWh!nz42%u)t(rH zjCez-P31b#ft(PmYOO9Y`!eWG&I|D zyt)aC2Vk$)E2psD@sx0$t&0rMe2!f61tS-5F%77&C*IGNaQgPg>72oueYTfynXRFI zzzocRa{V)$Hz?LW!C8NgLIy@9Gp8~@sp;biqZX*d;aC4gvh+L2A(IS$l31urRj%Rs P)Du?OyG&l@{|20I8U+xj literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext.class b/Assignment-2/Java-8/Java8Parser$PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..535d382b05bf0f1944e1c01b132be74a495ed359 GIT binary patch literal 3595 zcmbtXTTdHT5dMx$Sg=h3q=XP4gg}BXG)^gPE(Rx#fns6|wHCj!6hG^xK2X?{4voT&n4d{TvVA1Uebo z$aTJakE;yh!BitBy2g1l&$W`G%Ee51oyUYmcK|2x3`2WOqrz}9NE$}$Rb44Y(@I6B zfKD-7um^NUl~q-wPSKTZF2b|6F5xu8pdC89v!zkul(M=9Im2+n4lxpxQY*Tw7I;$Q zvQFrIo?Ff(3@}9OB6A8at~Wj;31=BD+X;(Yf497zQn$+m!=byIa}3dXR+evYjZ?I4 zBp=RWM8aqQ7jTi`VsppN&^o24iXImS*=(t#LMsx2bZWK`#gTE9YkrI&96$u)3<*w+ zpdF>w8S=rj&CBRf#H>n)g;qq6mjZ~2AaC*=ML&uxgH$vdpW$pUbRgV=6CuXXlB70Z zIFVLVo~f4BxR#gKinP+ETiwPmrNOr)Kb)QNM&%3I+qxaJuuwH5@b)D}}r3XVPDobOK zh_@9@(*|S8D0<_ymZ#TFZ5&avGj!y1xo~e$-m3MQXn9l3mn&Db0-sZabf<07ToS!O zZJFT}eZE}L83HMl=9_VxoL*VS5B4@4{85I8l>nLyj&5h@Ygp|JU3Ha9d4GzEqoH$1 z88M7DQx*&(ChUpljA8l?I8WbIz$ws?;yJob(A@~U^b7EZyS?5=IQAIchjdGuqHC*o zH1R%NC-DMZ9R$Bg@H+_~5cEY{u?XiZ4{hPj1Q9x%=nn~Z)eYV5hW?1q*Ki#kBbXtw zB6=y@IsFJ-PU(*kqlX?$8Kh~tiXDi6JY*@L>3)}hJ|SG(%|+bB#eJKLI9y!B-CTT1 zE^gqa6_D)=dd!seICt_HK@)CCy6l#u&k23Y4IObqe?jP^8~U0X`b$F3V3w|qYUnjX z?{$X$6+!3RC*cQz(kG#f;5BMAGVnWwf1{sfclksWPW*`0iJxd?3Ck8?fUGF$mM;A9 zU=MBf;?MNtWn?Yn6;cqD+#UG`W8a`7@)%>`KN0dkc<~rLY>$~9$PST}(f&Uf;F`Ap literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$PrimitiveTypeContext.class b/Assignment-2/Java-8/Java8Parser$PrimitiveTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..70982a3ee87633b094e864c8870ebc772330f067 GIT binary patch literal 1582 zcma)6T~8B16g|^ox3tSg3!+kxZ|n!MC@5$f5+oXHY9Z2KVvM?!NnL4Y$#zQcr}!Uy z&=-t87<~0d8SiWt*s>CNnc1Da_ndR@xwF6j{P+oA4FwG$hWIn{z+BlhohElQbTQoY z9ZZ*74enUg%Ex`aZVSl|WegE$8lpP75n~wlM{hb-!;;nk_r){x*0_Aps-FNb6w;*+ zL~7JcQ8U)-X0w?uW=ghGGfW}tj&ZPLI4vQq1~=NeeA#&oI>V@+bxjCcn$og`Phzi* zKJ+v6b&@w3rh@F5ww{)>>PE?G%DgHvsbc_x3{gU;*n32-h@R*Kq^G46~Q3k0Da9ge6xM+hu!F%xr5IVHohWMb*Itcj8Flrj9X;GbA}# z=ybTmFq1C%(xyAUdJWBIwiV2zjwuC`;D?s%h@&wQXOqG(na*^82FEDR(6vr&B8N(r z;1saKor<|rr<0g@>L_U@D0f=U++pb6vTDMVEr+5P0|A8&?!b8DSBZQwO-}mj4u&yk zk2W?+kJri!St9wTfkEFHbZ_R0VwWE>gwvTKNp^d$CYfR30%u(?cjPNHPA3jh_ZfP& zq*>j2Ztii0pf3!A z9nN|aK&A&8gbBJOL-Z>FqF|WD46U>DHia-f0r6}y96rL8V}!rZE5j{XBkB{Y(3(aD zAva-+c9o!Ilkp?;oDY79EPV_i=O)e3dcqQ-b7G07T$cFx#8(u08}nYmm?uliMo3lS zeDG@uqnqkO54)0bBj0fKD?PUL$4Cg+8${S!Ix(=|C8$JIL#XTXX>7aJcXWOScfGh} z%2%?JxnD?qLQn1(sqA-*hM+h?Zjag=RV3Ih7U`7QnV|Hg|A9;dL23l@{tP6HdoIg; bEW10y3hl$hpe%bp|8%AKA?$}}g5KS>uyjl0WoCEw+%xCib7%JB(YyBm7O~)ihavb#+tcQsXl9k0 zK6Ee)I2OjA3QdUO^Ig7V2+8+l0G;sp;8)Ov0K>QwyT&)UzQ;}C(kfhXvk}8^vBc$C zt=uGG$R_g7Xj`?ciITch)~eM^E}1vXlBx+=Hr2gZ)vO7rSGZbN=7`Q%8WaWHxX9oq z=AyB~1;b<_cNT{pLl|c0YrBn_`E5^Zwm`wCnVbBfZc&FFdZ(Rk>_bB`M1ZY8Cq^a%%5zt4j=hE}xIjcf^%GM(B|C(lrAFK=%Z$(KtbGWAM@w z5KKkA-UD1Xg!dJ_GF+#z)A|(qL}LO;8m)lgMu0yRPE$az75$lTDWu`C(L*#_^uAOy zbbv@J_zNcKqX#$apeY)gnmn{lnnH0~Q>ZoYD?!zEnzq|%`bOyKcId@+=dRwry^_D^!whB{z&RqY(u}4* zApQc~=|jX*Z!zeBwTZ`epuWj(L}Gt%+ad*vQ23qyk&L)Wj)>&%35geT_Ac|dYtIb# XXzr&StcJ+Y|HRUqr8z|NeRTZ;Wq6e8 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ReferenceTypeContext.class b/Assignment-2/Java-8/Java8Parser$ReferenceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a4eeec0f048e25c80fa816ac1f6d6409a14a1339 GIT binary patch literal 1408 zcma)6ZBNrs6n;*NbZi~40lokV^12tKs3e+ur<3fs~BexxapW=V; zgMQKI2ZLYzQO47*U^@``($jl;p68tVJm>b;@9#eVEMw7tMo6uSL-F{9P_9%4x(Kt8 zjj5G}aNTuPc08$eL|s;o59CUdS4UnF-7pL!O!Od07>~j>lcnxJ8E?TPPc=o=u+6_j~B?Bg5ELzoXt|pW%w$5r8 z=p~Fsla`ed$FXDdBV!Ogdw#pz}^L}h1N9uf3h zzRVnL#dx*|3;*!LQ!*T*D!-lT&YBU@o1Un@e=ZKfb0h-g0=DF4v!&|tsqItuM;w^n zI% zDFV>Bx=|>OensEsvv!iuxSdz%)?Rb!3}!>XFh~CkTH@nbZoBn2yq`lp%zMOmW0P~{%xgGjJA aPM|ArV1a*%e$V$grZ_&}nCAEpJ%0d#uvEAJ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$RelationalExpressionContext.class b/Assignment-2/Java-8/Java8Parser$RelationalExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..99c8613abc1a9e13294ee961a233240ff674cddd GIT binary patch literal 1766 zcma)7T~8B16g|^oTiS)vf_$r}75afJDhgU+(p1o5t%f$dFEHRj*^=EYsXxX4;Df$s z^uge(f55~j8WT0qME`;D?sf}HJ18$RyF2Hcd*_}zvv2>rdJQ0hv>zUZ(1Nm~%sfzZ zgX?~@F`RRKh!r2IYvx>STjz$MRax4Z0Xc4sT$M>s(vmrAOP1M1zQ;+m9Xz zC(+9=db|V~e6y;inm4VSj=QN`V#$wwhHh6*dDSqv#`O^TFeqUN!wdtQtk6Z(wxhY& zF%igdAe~sUL{CdNV~O_jnre#R3}NGND^L~UiM%_ExL48)ZCR=`Ddbg+7phy!TrVlh zW%|;i3z~%?)g&xRsF6Q|CtqSn5=CfAtK-DDO$<+d&U&IDm@5=ZnL>8%{yam6&RzC1 z#9DH3EgvKyIgOpuR(XxV8&BjI+UpikzcWl8(ExUSc59cYHycKiEtE>pR8}_cDcer9 z0=7A}TCiBD>MML+wWPaTCQNM5X`<6m;D&jpVwen4PNUATj}|u=dc`g=4E>|Zx16T!%I&iy7pX0&p9q~2p$A3i z&x9VwMH-vR5+*d&G2Fb-F9fAK$wlx|js3~g@C!tq?H4@=4;B3@e3@?qoq+5RhH18( zYKvg+$v(Pn(RW&z#3ctgO$wxeXzC669-||*i@xMb40vEg@z~bZqx?W5^AnfpD|JDH v=vV$Ha;jD27m55n5b(?3rPj=0S>Jb=nO5hpe2h(;TMx2HO7uw3nM^ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ResourceContext.class b/Assignment-2/Java-8/Java8Parser$ResourceContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e6f2d268be80329270c224969e2f5e4fe28626e6 GIT binary patch literal 1943 zcma)7TTc^P7+t%?4zxvj@p2Rt5Y)D4N00YY4vHvRQ;D&a_Yt;aw9Jq_Q-VLmClg~# zOpKSr<2m|Z^wl3_Tr-`KVG23C?60%;x4z5z*53W`^UGHNvzXVA5Xjsy){V>e4CP3r zp-*5WvN8F&`1@^8;_kO3nxiMX8 zJZ3h%ZCES%T-$J*TD{z`)rxLdZd>W==XKSwTys_G-GUUslHP}S4pY2q*^sCqrG4+OC~G`9Em2pxv{3C zwt$p;!b8 zggy4I$mZb5P19Vl47a1$-<2MR=`CD^jfEjY@@JT@RHFE!6WYm{(+M zvySe(d7}l+?4Tx}82|FNc%eeoaQ2i-(>0c!+%?vMQT6)@@S~-h{>w3MdZBZX6005= zyuu68ac|p>%gX8&W#~U1l2<1e7Y9WVsw(K6&s5mxHscn^_smA%V2FtEh;crEhxvR0 zX^>HrxmNf!fh2zcnMxs<{DeKof x$9seP#~`0KgCy~{pJfJDeJgN{wt_wW)Moj2>D7FlHbXl{>m|NHTco{-fnQWf;O+nb literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ResourceListContext.class b/Assignment-2/Java-8/Java8Parser$ResourceListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7202564bec434d8c26babe78acd3cae2953db362 GIT binary patch literal 1563 zcma)6T~8BH5Iwhx-F__47QX>OLEX041w}#IKn&4XQ;4ArZze8qQx~>dyt^g*75{@K z`hw91gRlN5jmiyqfPE@cI>d;Wth=xd&FqirqeXm zY}0ki`EI1+S+*go%aTUZFpLp~k+TR4m41L~zSb5^!*o1b7>A37=s2F$;zoC>2)~b< z(U3)sAxX%M_C9y0t1+E0{Jze1aaqF^TxCdvxeRl9^*laLaBeiXXjzVFZ?tzg@mG7yZoiO{s3?gBD%hXT zpasUQI=lRcLDBQnL9)Aix)BWX=Sb^=`POZapF#;q0EXeZXYTB;n+L(_621&RTB`0} z)R&fo&P3Kx+N0}64&LCd_o^+`)~XJ9!oPc*ygwT1czSEc!brpbWS%&gS$+~AC*wY1 z(COP0y&1jLLQXlxr7v`3$kQ_}!=<+<&^d;pUo=NgSu_KMVnCXT#*dLcfzn&}j#3{C zV9Bf=W3)GUJ76jKMMl6f9k3({nN?yL>#f?QJi3=bw(Lovp438d;v24grDJ!Hlx(%s zM7;E#BJ)@X3S^<2d?<_0pH8#8V_WpgLp%yHmk2?Qn=Agp*-&G3}oIpQS_Jfr_|*>f4mzmRrx A-v9sr literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ResourceSpecificationContext.class b/Assignment-2/Java-8/Java8Parser$ResourceSpecificationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..f99eb6f79b1e3b4c05725aa83a4fd467ef9970a4 GIT binary patch literal 1368 zcma)5U2oE06np#&w1bsnIAm4YRMPx;-$J zi>Hb?(rs2hFS_mobZ}}1j9;DpQdKn9=tV2g?P%W!Aul+=%uez2%8W{mu5jossCNEJov9&GM*?m! zm?12cDHxx4L*r-In&Z5?W3K&O+O}(l$qj~7$5wl12kN;;H0FBZq9r=+a_?&n zblOL^dP>Vh``zM}{l;+ghz*@a=589d7z%-=PS-PceeIKr2ei;>`UZg*817?*o<;gs zM3~+vDyLtBKOy{q-Wg>BQ72wqrROTv=vk!LnwOoFvvJB!ULpQx!8)a`2f@D#f-h0_ z!=UWfLD`Qeo4y(!nJ|$ODM~(OsJ!wokh`-W+XV9D dH%J&8ZkJ6|-IGC~GfRCV)L;v7`Y}94{1++AJKO*O literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ResultContext.class b/Assignment-2/Java-8/Java8Parser$ResultContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a9fd88920fd75e659299937337e0def1041c463a GIT binary patch literal 1170 zcma)6O>YuG7=DIDmXD<$h76#s(< zy=e4c>eaI`YNCn$5aYWG)TOntml>-J;I^|-4d z%1{Vhl%5Dnh|aTJ-W&+YM>2^RR26Xz2_zX7!q|204IMcFGR*b3Tpv19Cc|pE^_08} z#}YlG=~$lEFe|Nr+cPX79oN{qX}Cin?LIfg<%HM`-&oU-#vDVOlskhRE*O@}=5ZR* z<=p6Sw{Hu}X%DtJX=IR9k<*~#G{e%#tQlgfwy@W=Qdc~9Y@n9h7!2Jle&6<`GoiFr{Mn+}Xmd}l4LnJe znS#;|290|JKAZ&k%p{D^a)5+bBgjBr}m+|q$4B37z+Ip zovsjYOejtW@oJ_{gw$d5XTs44PSC!*LP~12R(ON?R|nEbL;(E@V)|EtmT+xCSft&r zN6DOB(d+?b_m-hvt@Qt@>hKI z*#~`5^g$|$UT#-h0lu_ntlb_3k}@hq$dF#E{&!PON)REa`HY zKm->wM0IG0F)Rf>wlt2n;4H+HNm|<8Msd*@kA-Z7;Tiy3c9bM;84vE^; zFvl<*D79j{iVH52n8hU>mvMz*hMLOdxh^xT<|~23F;gfNc0H)9j(HDins;qAgcPl9 zHJ;Y048{C^4~ZeNNyB28s@Q^8JMBF#8`fTnZX)%qoiam$52nVjNXS98LlZ4A=>0*K z#R2a!g!2VLiT8@9`7+!Z(^}s`et#QeravvD(itYmmitFL)^T53%x{2?mZ&=&xz8Wj z9&{=oZvBwlL-wt5S3P!IaMp9=KjFkHiRS{LYT z0bx1;v0^G0evR-;I#Ziyje7USM_QLgML!r7{fVNNk)w5i5SIJc$zmo>(aBT9&%=MF zP%?NRAxw!{(a65R)GIpnv?LHBEng5d&gkX_R{9B9+CBA=G@id0ME8_`r7x?<_apBT z0%0Iye8B88OcnS0M{fBydV9l$mogb`qfJu{As%@>C4a6614 zhMQdr3){7tkm86xY9HF%afD?SEmQKgj3R_^7!eJ_h%(&hPO7{XuVhaK!)Tq$m#qf( zAQgW61vRJPx`LYEZ6SS;3<;yB{|xC=`V9U+kK`DJic~s=v9d7vPOG`c?W(cY zP%F+^lTbl@us$)TvKa#9Dk-CAUz5oO6;U@0*|Lcs-xHAUU;f@sZ;|k|HWzyv-0yrAs8qZISXV!`c7?xQMR7tK_=VMpJ_rMk>)jzQY~))N&*#E1BdR_kwY{A<2OqW0>k+b}~tb{I7md&~?W= zjSKWPk03n(u}mTuJjR6+1V7O$eMV>usjWhd#zidA=t~H75<>ojI)$c?M!-#&rCBkA zGvg1B5%UKNWN0&htedp#vCNUI0If$TY5Evr{;UIvTj@tp>_gG)qF6y6ief(sizw(z z;R#Z83c9Dr&V0edXL{_^D5`W8Y=jC9t*k=#5@u*t#~zB~*T=unor+4@S;H+aa)S`m zSrgeGNPfUb_5{hyS4;<>SORV*IxKGyFSK!+R;g)mO26|zkl9|4cLehOA4m}EF3Vlq Wb7zJPniIsUjIl|74@&cW4F3VjO@qJy literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SimpleTypeNameContext.class b/Assignment-2/Java-8/Java8Parser$SimpleTypeNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4c4dea48849bbedc510f78cf54b818feeac89e77 GIT binary patch literal 969 zcma))O>fgc5Qg84(>QS)@=*$bmXFX<@_`5kB#?rTP*ADC4Hbzhadew$wbZerwNr(k z!hhfZ7Z4l}T=`Lmu@l;q2EoBI>)n}WcHW&IKfinh@EEsrBm}b0oFnJKwxa@429j9N zkusqpEl`;`TIM%{@a86)-ZrbElFGuc4z0^bL$?#EBZGNdUIW4QU zqoW|OIMa?TgOEH@S>#bNv5510PTZ3^-6!9yYR}}&m!VbLi9i=jT#P^^8q4rcj$!qg zFZU%WfqM17g%U`%SulaTEj{Xt2D_ws&aTTlCTkywV|jfV3ux7vC6I}`h_(gp{zaqs zIbxxD{4l?@;4TDm-O$-P+;WD~8tJH)3C-yGBeh2xGC~(-M7i^tM~FwELqWLd2Rs#~ z<*~SJ*9ig&1eQ*VF&!RMc-#ygMPLB}Wn5x=ng6as;}wvu7xuM}(BAV}V3}qaeElaGvNsr>t<8 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SingleElementAnnotationContext.class b/Assignment-2/Java-8/Java8Parser$SingleElementAnnotationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..be855ece757d8ab36ea7abbcd8492dc30d776945 GIT binary patch literal 1528 zcma)*T~8B16o%hvvD=S@mZG8*feKP?M9t)@Ca-fLi$YjZmxd))EFt-!WC+)|tXg|qFwA92rEJ-< zYnm>kX=?|In%xxAsB=x)oNHBX*A1bY6>EnV6hs+P-b&S@eO}S)yp47arK%Xj5W^4^ zS#O%1UkuBc@-CfUGj&nZR!qIoDD*4cYSEKTr4tO3-qP*%Hg&VvsS!mIBMQ!|xPXfc zv%YQhuo*(jhA`wqM-6`|dUELGn+h&5jChVzHX4!(ZpSc+F%>C{GmMi1-0outgO(|K z0B0Ci$Zk652^EtLI>iqS*_RwBR%t3S|LrZqzzTWH5HA~oSDN)LZddg!lfHyy+huZq zfZhXl`ClL{%WK8;)e3{kTl41{#4z2J>0_Uhz23=gPftng@I!`RCR<{NxMDhE!LZQB zDtBsKzp6C99ZN_$hQSS~Z|^{2E#-j2Tm?qyh|gR8K2&frmK^ryADLaFh%bSSLtmEL3#qhxkN4a4Z$z; zOlr~^a=xdJXq~||TAk?Wc62P4j8Js!7?JLT=M*~YhrjQKe?igLk?F<9Tljc4{w0NG z{qPU`@UJME?y3hLq%M?Pe*8Ozzn-)jMSxm;jZpdxh31fNC!}b1#0e&zeLe|p>GGC- z%;82maESnfKr;Uuqn|LCKgMY82QCNT6bZO`wu-#NaQZ#w9Vpl^rE6zFuJl4a5ai=2 iB!~sK%1zvIcZS=vk5PpIDzHe7JD%U6HBS3oME(I1PG#`` literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SingleStaticImportDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$SingleStaticImportDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..be681804aa1f426be7a5e8ed962a22defd71af33 GIT binary patch literal 1502 zcma)5T~E|N6g{)W?QXZgvWSYHeB*u~Ma5{cL_-#hHOoTShWD}zn?ko;+b)78n&_|a zKlq?88htSM>W?zsc8fMpgfy9%&YU^t-gEE#`u+U}fMqO-NHAoc>-+k{b=`5fBcTVE zL?mU1NHHu#j;8B|)iinC(>L4qHLBw)p`8^99;W2ln|jrXD_{I6(^r z71F2~kBdMCG4xWCH}+Qbb{KQYx2ek})$NYc;7<*oIvWXkewX@>vZ`^{duF@z5@gk) zss_!-U4{$Qha5YRJSM2`v-Dg62@E$eM&mgBjYFUnkSb<}g)b03(V8ksW76N3+B8na zp=aaJF95Fk-Yy$B49pH YQLqrq40mYGk!}wO+(nu`hI>f=0j`x%RR910 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SingleTypeImportDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$SingleTypeImportDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b2badd9c127afe0e9c3a38f71ffbcf8942188cef GIT binary patch literal 1326 zcma)6T~8B16g|_$Zo6He6pHd)0kI#*YBbTLL}O6nno!R6ulRxINJqK8*z$$qJ;jh}an5KIi?fA1b*Ie-(4jEX#3;rX#)xFM>z!RO zY!+)rl!N6tqGfG)P7qYDqVA^|i>?~TVnRpG#3ZH|)`lv+6vmL;bcL&)hlvi)@=^?m z+S4)3Fd0j<<_3xjE;GpEj)@t}G88zKQ(jYVhR4NP4CDsAsh0Laig^w_e;eZ$^2A-5=`1}&&|_m*#1gFq z`d5HPCm>bM&S+nueWo)bZy*`kjWJr6u|jKsY%2rrOgWb(@60LE7Xz~7x;hO0#W46B zdDByf!D~dLmn-w%F#d&(eJutOq-6?8BTtrlSQ`Y)(H^STvMZm?o%_P4>Eb?$1IMQX zKoH1Pej)!6qm@(S%inQ3fsiB-CEO>O!Gtl3QV0q*LE+{9fy`Y7Ss;+be;^tv5z9Ir VL_2-#XwMPv2oYFF(~kxW>A%sfIT-)| literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$StatementContext.class b/Assignment-2/Java-8/Java8Parser$StatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..3620859df08b55218dcfa2b8e1e2b269e30d649e GIT binary patch literal 2037 zcma)7TT|0e5dKb!4fH}O6;P-m6tEYhs3=JBf*l#_RK|e{&N$;tN)IKNrcRO~&;ASl zgAe+mqYneOxV)Tg&iTIGJ-gr8{{8psH-L2%1o#+2FT^8p<&~&vTousA zux#6y+15p!*SVtaO8P;gsh3qzk|m|K-K=Qsqe4T``LP~E0D^%2Fa{80NO-!jundDW zu5UGE-q~17l@2MBoGdD}TtOB!EniHR8fq;kD!Q!Zj+Sz2Q_-b5&zZ^E*m(hAhNL}W zNvv?0S3CJzaRdx9OxuCQ{qg}<+_)izIXCW^tZ_GXm|@C}-93lHR!{!;IF}%^8wn$fwfYQO;ns6JY2oG^(5- zT9OpL*{oN%S{5rZ?F`8dT`=5qL^?$|d2%Q9YK8ja;ChRRsBx3pBOiv0C%p&Mz0=^w z9#t{SI@q47quAkno6hK&IA|U!G)UI_EGkug%-~O@iwpxTDHsorVeu59=_DYvGWF0z>~M*YxKNO{dI?3MsTT zA-Kkn?P%+KWsvI*+A1u=*eMNX81-%^!?=0i)hLD$&pwa@JPM5|8k(atje#KOZD5wx zIr>V%PrrarX4volj!P%-f2B`SE3Em`R8^3GWEHh}&*L+$6-E1d*UL8EphV6-3Bn6F)HWty7^O zd{m(-0!dELJGg5R5@e0C_Qmk&O9yS%bDvI@aL+<6lLzvF;p`twd`2XDf{DyeT=T(* z;%oK6j3ObHJj8w4rIy8rzI>jODYuh4IZ?V!{8(v4d4ScHrFlqp6+%lEYxECm5wefTM#(-QYb3HxHcs{_2L1!OISRA@ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$StatementExpressionContext.class b/Assignment-2/Java-8/Java8Parser$StatementExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae0b81ee2ae579e932bbdf97d79f80740b3cbc9 GIT binary patch literal 2348 zcma)8+fEZv6kVsq4)kIv$VKEL0@4dmLmLIJ5Mgb3k%C?_~rX2{GbX=0)#ny8=P zKlq?88htSM>PH#(bOsn^rjV8^eo+q3o-NTorju6}&3K2tkt297PMl47Z)&Eg=hTVppn1Iwz*4+AM~v`&>M$ zl=<1le6n~znX_eC-OuLBvSH*3siLOuXJu8C_3ZI%4~clsk-WT$j)j#SQdQlP*_PhS0pCDq?|QEP2^Z6jD19`Wf0Crz|Rl z;40T6=)=t@262m_n{2^#ABQkxl0^r3*au^qCYRbVC5NLJF(tcrRS`aDhA_Fwwk^Y8 zGIc@UW9b}2Q(oKS4Dq6(@{P*jF4wo^-7@WTl97EH&oJ&%ZRkJBU<&y-!dJ)#cUl4Z z)<^zcWSDRt$sg#F@=4||TvbM0nIvw<_&I$HR=nUtf0~>Qu`v@U`Tju$u8 z?O_8NDRkB8C=Hy;^@k=yh$fZ!iGWxbr8P-+LkQ9p?WWs;!Ed;7g5Vdrr5R3Z$b2-S z(3(buRu>^+5h89vnV@4B_Yz_jA?7A%1f4+EONd*9xSOC8bP{*GgoH&%xCs@4PT{VX z&~6dh-GnMZr*Y3q=&%SKZo*4~(ocYc5Tpu9=}hl;bbUQ5X&3=2=_`arUK4Z%vo^sb zntfgc8aSMJ19Ou%RduXbfEwM literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$StatementExpressionListContext.class b/Assignment-2/Java-8/Java8Parser$StatementExpressionListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..23ef047df064e209dce3fd93a7bfabaf5c7a51a2 GIT binary patch literal 1674 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 W%mg#TbDA@x+d~4gNYcmf0?B`KhEy;B literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$StaticInitializerContext.class b/Assignment-2/Java-8/Java8Parser$StaticInitializerContext.class new file mode 100644 index 0000000000000000000000000000000000000000..612d6d0aff83ddb30e1c98d92b3f063c708053e5 GIT binary patch literal 1211 zcma)5-*3`T6#gz{lpkdSChK&l=n$dIbq^+Lx=bfVSA)a|?!B-Z(otH|mWBAA_&@ld zFB*L?^VL7fcv=t}VbL_X_xARD-#OnoUw{1k`VGJ#_C&-OGS7`Oj&Jy8U$;%)G%WKicbksw^NG)p9B{wu47ts)Q`7Z&%W(&)Vf&V=p50a5 zvF)29uKF(LYL~ks(>AQObHX(dX@<>cj>neMAI^A#S|kZstTL=phF4>Y&r|N#TBlUD zY8m!GZCZxsX&2?4DvO}CG;+v`C`eexC5GzKau;9>iG7pQ9|S6wOI*NEQO6=S7}g^y zTc+o8o4Xklu_@s)t}twH>ZQBTVupIH6@gwj1g(A?(3K=y4d{w|V){$i5}od0S8p;X zwf~+HL%d1TVpwaLHgAtdJ??gmo<%n+yAkC(y+b4X&Ak^wQLn>4p zjD=zEf_{dU37gs_^Zf1`X=TWgy8iHm@n%*^GEh8aOLv^H+viWsfI1hcYxk5aLw0R* z&p&cJa;~J?G>FhY+#@e8v}|rTDXIxK$eTI(hkyhauHibZWqK<^pc9Z(a#i6Igb#FP z6g`cD{D9tWVw=`7-EGgJGfE*v(V26k{sw3iN+yi}1Okdmqx2bTAL%${Pa_7%2S~^d z>865PGr$(@K|Mn5_4|2nP%`94v{rGO)-rv$M+8KHLgPD%?~rYrqo{m=97B*K7D|{V yX(BH_L5*%nYM$Wrf01l0k~|}lqdz19lrT#JJK@f7hxP*HjZ=bMr08K#k@^L7%N{)d literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SuperclassContext.class b/Assignment-2/Java-8/Java8Parser$SuperclassContext.class new file mode 100644 index 0000000000000000000000000000000000000000..d8fbb472006ebd80982327d9257000c402171b36 GIT binary patch literal 1193 zcma)5-)qxQ6#i~goBl|L`@4ef>!xVgFaeBb%Lb54H$`SBCLJ#31IF=QSYhsK>JhU;-R zjX2JUNJtQoWLS(`t+WSy?shE0^XiW6^P$g>>~dds4!F&*rZgIrrsH-s!}cv#JG`a2 z1KT%yT=QMdHJ!UX(>AP@v&U;9(hQ|2c|G9OpZEEgI}jpC$Rfv(qbyGc*6|g?meSlO z&6;J{T`fe`&dNQq6+ze1kdYTrkT8$)46CO~o`EqWwoKdf?*>j!w>g6$Q9B|oFw94s zHcijxHg_{9;*x~RxWX{Ush;knz6?uBGlH2deXX(+5R@b=1_U`iH2o-E+{@h^3i}@PhoMZ2QE}6)t1(F9jy3E(K4cJ-N`p8; zmq9BSHqWSGI4WTwbsC!ET9I3ZY}+?F2ak>ZSW+_ZJYq|?oq^lo56pmCj%eH1r!k>1 zZE??k=y)`-Qp2X=hmyI+ke?LoWT@q7L%2@EDAOMUB*1VL*Jv%%R~Z8BfTSwtg|84k z)1FcEC=SvK`dY#=tz|k}9!F=?LW-g@M@UTrUQ#GcWdtA)P*kg>ZDCjAs^1556O)e$D(Sv-XMpsN>MO_S;8!5d)8}< zQTi>lddLN6ZPRXP+ilZzE0Z+zYYd?)aU_wFkyenwJYnrp>0>a$^p<5?-b26Q%gY_Z zu&6y5i-b(5V!uXV3nzgEWEEV)b;7*xyKte|gmtwV0!|o4rLgByEi1U;Q)R@d<&81L z_1bQAr?yi!8ibW7Q@LARAvqzqAl$?)UUU4G zgTyBwT1;l8w~$`*nK-&12j!gKR%8Xp%Y7zb3ZzTtSa^w< z(is+t?{PH(KS?Agp`YYCQpyjge9NV#7+&}n$auoLd`p60w$ MoS=*tKLic2KO{3VzyJUM literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SwitchBlockContext.class b/Assignment-2/Java-8/Java8Parser$SwitchBlockContext.class new file mode 100644 index 0000000000000000000000000000000000000000..49f1227e27334d9fc95569f534ebce40dfff66d9 GIT binary patch literal 1813 zcmb7ETTc@~7(LV0UboVVpityuk=~F6MM1ZcK;xyR5T{|G@`+ z!RUj*SAUf8o9zl)x{a77GuxT(J7>Q0ota<1zyAQRh0PFr46#@0vAXd_HM`u5B7kcl z1SNzJW|(npE!5v@R`cz)-f13II)=qhEQWB4TaC^kHyD=k)oP*EF2KR^EjZiaA6!X%~`7CnU;f@TPoHAAyDg}&b64&^A-!d?i|3~86XLIG}YGlmRi zB+O!tAwd#z)74g6M^}Y0SHJrq!`ji_@F+i9M% zsW7bO$r1mRMR%)zYTF15Ygamk+ch?E)|+@BjzMxPT{RB)34=dhsFDbFi-lJiRz?`e zzMZy<8gx(p8ig9o5GOU7hp*KmryF6>?mk+y-szc5{#+B#370I(q7(Eo?C`GjveTtU zLaG|%Jo{F1x~nOdUmSfI=3I-OEjZ6}myLP4(-ZWT0Z}k4;4Y1e^luJ+`U1kmgyKJi z|1*6v{*%xcBq(&oFaA^I)D;w`mkgt-J?+)C`$+O z(Hx_s%qhms5V@QfqR?e8mb3>;)M1hBq?KWobe|=CnI%r4^a8mO{B|v+>8}|7LZ5w^ zqT;l<1cJFFt*qj{lQ2!QC_a$Hhfn9xeNj`i^8jm3v6#gzn3bbqkbn0YtZgWtWt0pFzu$U-`im8i{WhN$S3cF&r(k|^~@-uw( zKlq?88htSH)gNU%g^rcMbT9Yxo}BZY?|kRn{{HjhCxH9VWyBbiC+2~9_nGPW+>;S! zxEgV+G~QdH_0BMx-1cj(BY01wk$@~CsUn3m!`gWG1KVxwHH0a6hdbht=XUqQT!yJO z7tgykA38Ql#x60?ZPRJ%HQV(4YF#s2udSPous!|Yw(fNuVRg7ZAQ{Q7%1{}Wq6|iB zA9J3za2&j!zs*svT++@mf_XQfovwq=}W$VXTimM^%&Jq3BpslK2GRDDk7Y5T+U~MBUlpJqD?y)frNKae_%R+&o2k z;qh=Kw&?3fVv>O&L(A9Ndur~7^pb%X1GIF*?RqW#&x!-=jeGgy_D*`+W;d{!Va{GZ|nA`}# zhYz%I9{`aahf7Sg3sM%Im8NztsjAssGD zMpLuY2A3>@bE(RWhN>y`vcALf0zwRPZaN`Ni#&_11B08Us%xDfc1og%QH(K+QMiZA zI`73_P0M?fy;N7UU8zu4Ofx?$iFSc5Z%QJ{Fyl_5s5KkiM9NB|8z+P~#s!=aaTezo z<_8wp$7k@bs+wxuv3oPPF?~Li{g#094CAh}WYx5|#*Hu%m=tjVNrosV1q_!YR7qNP zISr62pV_hzQz9r#o$e6N(@1# zjrLG5EDaIKnO;Y!D$Q|M3~DCBXvI=$`}dWDPR#+krEOZMqBo5iUsr8()K&B19t|wL zoH9494c(+iB$hN%*O^{!QsZ2j^ag!mXr~wwL(0cxdOC4>=|B(+({yIILZ@kX=?e&C zqkiuzcwf*r%@3`9`#$xK)>+KaYFp2Ati#!OkgUT;2%dKMK&JD9@Ee2h$7G#Cx*s2D z<0Gf>AIUT`2rmx8eMrgl<;2+YjXm$Vq literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$SwitchLabelsContext.class b/Assignment-2/Java-8/Java8Parser$SwitchLabelsContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7efe7164176a43a7c77386810cf02d7f2c6e76da GIT binary patch literal 1251 zcma)6U279T6g`uT-F$4?WMlklw9&-ot9C0C6cP#&5F=?3Q~JJ1hq!gSk=;qn4-f_H#>gpR~*lw;O#&@S%ud4yuZXhA3hTOEaoHzno#A$Hn7;&HaSOkT13N zh}5u6r)M;5)AMTOab_Sa+h|#ys7V@4Ljv;*^QRFQ>eB$ta;xw54AT*|YaFZ_?!Xb& zJ~ze(3-A+i5-AnBhBVGIET657VXkgDme^oeDV>$7S>91`fgv3bNuG{7+>IlHOBycY z3PXyMv~ECa5~)yX1-gPpOr))qcO*zw!&M2AoG#)x|-_A%(CDU}(*js7ktlUkO; zw+8zi?rxhMn=;Y1)pJZSaB06j)mfi4obPgNqb7YOS7sbyQpceA?lzrWK4efzkx|0l% zE$)d2eNWJ2O^1vcT~JPr=mBw$Z+AM7oEU@aba|8Xje#P4P*_3;IeLKpQ`6!h;zv;aZG1_kbeRJU3N@&eYW5ozzS4Hg z5|cQ^SC}ilrp!$&`wdx&a;$I)?>`?`%h6GMLu(NwT66T~4k5@{^y)8UJ|R&(LZaeUlq)EQQ8F^u%+-<|EGPZEZdzgJAt14+?a2BKh?qBBWErzr&K3y95#KFiyKIPAG{-PrA_^ zVZPFzd0ccOmkEI|kjlTo=wl4zk1(2hi8BG%ECEN*4$C(r)8DZ`w!w}QmzkZ}d(XM|oI5{$e*Feu8yg|`7-CQLGktSUw`^`j5x__Y zK?Na%8C2J=h3acje`T4%c*75?j_&X#7f!(x4sSaQ;Un(U%o8pca%!=dE}7PmrVFQG zX=m%2)e?@;6q%*8oD^r3Ju-1^B0kKTXba;`8dOroBUD3te^CGlb8tMl7h>)!m#Ms(GVy@ zaLW*e^H2)mt-??amAoIq6vKq8mXcvRTyQIfNz5p?iWI{PNzN@#Cm5F0k}LhMe&y5q z684&c>k@XFw+-h4RHgc&T-dEVFBf0#JZ8wK|7|Tppg$w;65_w!4F&Nyt-XrI$H!Agy9Z4J5f8qU_b}W;OP;~4ZkwN$@h2Hjpf8YhbMA0fF z$pC!33m+eZ*C>>prz^ovb%iq7)Mq3<_FIj@N3E_Rm|LUJ3}jW3Aw|0sCy>Cq_xDs?QW`{xY l1hVx9#E+E@%N?wCc7`?DXNVy{1nXqEH2p5EaoX=8@(cQJTXp~d literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$ThrowStatementContext.class b/Assignment-2/Java-8/Java8Parser$ThrowStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..36fba6ad0732578cf25c8ef63deb4b3bc1f326f6 GIT binary patch literal 1269 zcma)5-%ry}6#niu)~zeB4d+kLA&C1?sU{|xjA#tOFf-7=g3kqRu&}kH?Qs8!&%XMg zFB*L?`0Afz4Do9>XJI3fCimW+d(L;hbIx~vo_zZb;29n$hzVp~m`CR0SElPpS49G2 z3X&QWqy%OoSM$v`uJd-&H+|Wbw!iGyzU=w}sXgg8odanL=%sqS+;H4I!?gXDYaBf^ z+>Y&AZE5(fltxp!ZOb-W>&~vMDNqGwq6t>IhpzNI%dz|50UJ%jI3@%pm}aBXl7qZU zrN%yq8!gk`GnQMX=heQRQG%6bT`t9EZkOBhu!|T3tZv53z3V z%C11XRHiW<79LDT;Ql#n4doN|wn-uVZ66C47^ft64%W=WKDSg*eh*FEbUN;id~OBM z*$BtQeJY32U6-D}>UdPKR<}8iP)5=dD4g!!Kyb83u6~&3rT+yTNYIlD16zQ~V!% z&=-w9nEC1-Wjrkv8yJ~sa_{Z!`M&dg=bZlf{rv}kU2Ka8F(h7S=i1JJX4%||BaCYz zA`(PI8I}T{3hGOI zV^|0{c0F=~TM1;bDB&iS7$i=0wfrJ8tjdi5V50by;*kqok#Ng}CiqZy#>j}efB5Qk zi=ia{cTX6?HR=t+d_y;QbI>~`DcW(DZqj_RI}9>02i47LV1;b?eXAQMe8?ck#X3XG z^XfK)VS7d;y}|LysnQ7jtr$6HNVXiUefCo8`x2wB{}EffWe%)1f3CaKses03APZUhe1K?4}^Fg AA^-pY literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TryStatementContext.class b/Assignment-2/Java-8/Java8Parser$TryStatementContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1153cc4fcd81f63dd7cdc41cd7582be3c9907af0 GIT binary patch literal 1707 zcma)6T~pIQ6g}HQ(~lr6RRmi35X62-P*Kn#j&_EzPGubE;P|43vOpkBHAxxxDgFT8 ze9#vieQ@yAALV#Ai8Z8U@MX76&N+AYoO|=@_xB$F9^s*c5JTdrdZ;cvS51qXarB{I zLPUmyD8q#B)lA(y-mq1hH@RU~T87P!Y=-DAx9hC~ZZMQ`)oQ-hGItf#uys>8Tu{um zVQWpU*e2¬sU~Q1!LeHZMzvGmQA)K2+Gc}WL6hPb#$^d3GDb1RFx%6iu9GrEmNi4OSA?;>UG3tK51SIQ3~Ar_YMNzp zgPRFtFfL;PlME?}kemKM8D?@dAFEf|<@}})xhi8?h$Q)uW}nsw*VkV%6mtLF1`K@_ zY6phFnr85|c5{o4rEcl;q<>2^1Vfh8{0H;*Ntr=vxcM=R2Y{!8C1`ZVi;@~UfDMF9 z;8FXmSQ+L6?DIN+;Hq$n5$sM8t; z&(yb`V^I-^s}|pIdT~_~(n+6vbNe(pWW^e{>?bXYCRnZ-)E&+oaf@2VpJ-?1WWVb) zlc&9<_yPtpOrB>7rfA5A={p3(K<$TXw9eAMNrdSa5G^E?@E3$X(Qk(9v_{19(kohX z$kQs&(;hle7>W@(ae`Qo@P?oT6uSw7E@3c8Xb`l78{LGIOGpI?I|QAB(oIOagmjRg z5tP0LK0=u8A{C0+uekKNbKy8bbYUHlQj?(bxakqHvU2uMm$PT)thKLe&-*`b-U7IdTM}Fh{(H)vGWS5y z4X*pphIR=Z0Z8yLOxUi*^7_F;)!bUXAPJ6t1X zESrtz%KE0PXl7BD_hw|hqM2%m%cjn`oacH;)s*5=d7Y;v_!wgLSVuutc6mYFPz#Ew zmNhGm$T1K=C(baOp@_?sBCn?~AIoi1IdW0aHswrFF^qJpJZcr&*px>XL!Uj5JH>Kg z$8s*Ao1x!+n^DZd7B}kmXBi^)`$bV<@!)Yi@m`#h&=l-E zREDV*8mMknRS0?7ucKMhJQzA@Qwuxym0hb-9x;`gH{VKimlsvxy301{$!*#q%6*9& z=H0SE%N@vSB%bO@iL!@Vjq?jo8s0jL_ou(vJ)9f?*67=^UrG zVYulD@Fcoq_e;2+(=)>*Iy=Po)CW3ah|?+1qZZnq==KuYe+aLW@R6ViB%2Ar8X@Q; zd?M%sQq6==jSzAYJ`;2jax)=ZBZQrVF9fB(hK=B+TBJlW`U*WS>IM7YqJqDoBlV4- zQ<%00QL>^%Z6Q2;R!7&`^PO%kL+ICE44pF^sA>i8EJO%i=6!a=fsU`)hM%=t6GNZWD{to(KFnj!HdzS=?s#cCo2Nq KBpW8X0PkN*Ik&F> literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeArgumentContext.class b/Assignment-2/Java-8/Java8Parser$TypeArgumentContext.class new file mode 100644 index 0000000000000000000000000000000000000000..2d6e71ac199c8dec07b0fc6f26b06e1c068c6efd GIT binary patch literal 1203 zcma)6T~8B16g|_$UHV185S5~$R_wOO`e33-i3w?9tf|BR!RMtNo5k&x%uccX6#s({ z`l7)YEr}-Tk22ormt(=m%iNjSd(S=h+&la8*T>HQHsDx@FvK6bhwlBSt_ZoXFvGB{ zT@<$Xb1rz$;5)Alc(oHq-jgwyuq@0b5JimPs_w7cHbkr2=7Ai!Gt9NP-0J${c!u?2 zeV?*Az8kchs_%wjrDoSVqUE@O^o4VH*Ad-7dTs6uiD}Ul3kin2p7fdLHyf^KPWa6s zWg(qF23dxcv*9wB>t5i=2MnvlvvR4~yB6jdavGhw7fK#*5l0RS30%NMh78HUg)R<5 zp;*_V3i`)UAr*U9fh;DFS0HKL^Q7*^kQ91<6sG+b=xOb%Fw9gtP0o<2dja3zhWXQEpr+|s zPKGr#RVc2}xX;mp0a=D6T&DF3oo>LO9S|>N4dXq|^g?U7$Wdb-65FZA_ zrvpBbD-Ep{U=Wy9DldIN^4$bIh6u6w0@Li1>vf_s%#bImC>iO6Hxp;Y8s;&r1>B@n zalc0Z1c7Y%7`fL-mix$+j&ME#l_WAKVVLAAGUhj|&@EM)q3~P(1G#h()0F5QfHu4(C_Iwz=96@BPu=s%6XknaR2rOS1vsvEXzIr_nZ?s&Fq z*0|oBF2wI6Cshn0#SkOpN_~&p)YXti7=B-;yBJn6f(s1MRxZP=R_ey*I-Khj?$k`% zu-5B4ocJ!{l7h=B#xTxs<9uy0$a&K?-4(%h-qA|wO$AqIl#noDo80D30uz{0aTV7X zMo3cbgasB^44PIBRi1J{NYY$-Q-IB=xGunk`Jw4{VySM(KMX0YW4R1HMOqL!q-@%J z-K%X;PsWx-k=TY=wGG#E=zX!HGT*h!z+<_U9K(#zv)eeWM26ntleM*i@Kk$)`LoyF zsjy(n3br$)?aXIT14oza9e&6lY3ULT?W-cJ$}rzWb05t2bcKx8(v}oq=-Y6O?Y%W) zKiFYZ=+Z=sZ`3_!n?E!KbTYJ)xm~)4WbJj{a39r$1=NyFX7Mj27ndR|Y_K$j(Qq{6 z404xDZWo^@$m+O>2sHXONhhOI$)u!X^nRvShBQ585tfgTq4x-~e$gyFMbR`QiUA2K z8aqbf1X6q9b4tB+21|1F7z6FeF9Mc1zeo>QrUI5|Cb>#1L+w>BDUU90kS%(Ws3#?p z9si2aFZ9|RBraN&UqO~%Q)C{ugMu+S#pF_Q`2$G1uttQD^49f4YAV9$eseJK&Ak&>7?+N6?KM)D`e3m6F`zOPFI#a|; O9C$$g_oC+<&n%Ur4jUX*K_3)C3v*jOF2wx*T7Z6OhmBK zC_Le(ki#_-*Kvc8<=zVaT&D?3MLUu+CTxXRpmSX&JGCl0jHu;Bh1)!>kfw&zXlg7-Zc$5T^vKSgI2ep?EbR z!u>I=4UH7`x5<|J(?XU{nB0-h{?SY4c)&8Qn$Sl}?sR+pzIf(_>?1ta4%t0y;)V$1 zi>?x4);*p{XeAL4X3uqT=)1Y-bwnTTuv^pobAf*#!Y$n9HP3H(XnX?V<@8hSGqjI< zCXNPlb+2#odKU#=^L$qrM5oHx1V^XNkhqv&bLiqI_}VD=21m2WBk&rRG0K&NFPQ$s z$3B-NV$5X=y8eo9masfXnCD%w*V3~ehQWQ}+x%e##X;aB24DzeD?gBXkIBjza^ zi$N8Mg@XG$QuTE`xit*C9JZFd*M!4<2}oDC%Axx1V3yo GBz^-*@hc_( literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeArgumentsOrDiamondContext.class b/Assignment-2/Java-8/Java8Parser$TypeArgumentsOrDiamondContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bf753ab8c903553efad91367ac58842a91f4f641 GIT binary patch literal 1316 zcma)6ZEMp|7(KU{OJCBh?KWTbqEqK=+PO@yD0B#;L#@;)uIziZUP@ehGm_g;e~SOX z5Bfz>MCMojizq56DB^R|thQT=`;yx{Ip;j5=XsKkf8M?au!ie8A`FT9_P%}Vk?r~1 z(=oy@-&0tqKHcMMUcJ@iLi#0FNZyulj6&BDH4sCb!5oTz=&d_;(-pOl$S_vt@^P!d zyM@(k9W8NxACo za>1~aEf3R>9_Ln-dre2!jSaWPNh5`{j*Ni`OfoEMu++gBPB|aVZ7o9zR_xKlW}{yL6u0Q%8(W6Lo7%{jh@s?7h%hROQf7i*LFuZ-?J;lys^m z*k!erv{oD3m-k#>lC!d)K?OU?eTK=tAiE1a*H=C|5L~2{P0`y2=wLXH3v`{QyUWn% z7m&zhH0>2m9YA|Qw~PoN3Oy=(qU$9Bb_nw!A(~6A6CrUF{h4qJgV3cx=r4q({SUR3 z8IAhtx%}*FjKAy}i6cTrzGAfSji6Vs7!qdbRPIO8c=x=E?%4iLPp%>xB5#rcX&{sT zfT?Fl<_|EHdxJ9(s4kJQUK)Ub~CRHh!G|_Ya6PYiaoqMPn zb#4UVfmec0h6F#ufNg8M_;i!ssx|cTQcXAcw#neHaI;uj=Q_h=BAZR-YDPs-b+c+H zTQiE$&`oWFE2hD@Qsl;lrmNL_t;{nLf(%2>+$*Y~sjF4qN-wC$GJ0@~;TRQq)M#%p z%qMbd#9FDUdPP~Ps`Yy2u=34=+0axz!Z2YkZ)JF3Wa(VS6Sc&}QCl=5#27~H!Heax zW@*Skko}giBRVAm@%}fv{aZ18z8F36Soa@@mj?*ys z<~3b27la1g1?a#~uT~_SVd%A;OK{*iH$oW1u#6FmQs24gNLzS@kwnf0>99m5xgy}> zGR_Kk58u{I8(La^TwKoIE-<7L|7{iq&k~u2x|-8;o^Ncd5+mUg2H7N?_G}}Xoa|t? zx7$)P!_Zd}c5#T!kamENummLus|QWM5F`AWu;jj=41t1H(N(iy5ZSqofcXP#yW1+W zK-DG^WNv%k4~eCYw49gK%Y2)`ok(Vhg{7jn0SwcJc*MG-mQjjyUH7~|dXkC-Q!TCE zS2tT-_X|~<*@A^y!zl4Pnn)e7F`N>upa&w)>*n2Bo!$yLtCP8`u5!8%k+v<`uSu_1 za_GenKSBtG{_dS1_j>3yiN65oDq(`g1pPM*H+=#AR3z%&f%^r0GbCyBiFNM>8dFHq zD5A$&(Vdj(TX~OUnrDb5gWj5RY?!L!iksk**tWRa>M%-KJPbLxrCV(AWpNO z<&MOjw}YD<`c4~{aitYFO9=#(So$3XpP?tci^0@u47nhRxU9}Li~K;;`xCPwDOi-? ybN@;*)|uoNCHcLd#Eq*~m21dYGyN{mJWASosK9m7UZ}r7W0>X}G>gJF5%>#e#=Kep literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeDeclarationContext.class b/Assignment-2/Java-8/Java8Parser$TypeDeclarationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4c418058c1809b3b5e0a66a35c934571c04b2c07 GIT binary patch literal 1444 zcma)6T~E_c7=F%*>*xxMflL`H3c@~+qGB`|(HO*7Gl-Fe`@=YrLTO3c5&S9s2QTzS zqZbBm{Szj}sEH=}3ykmSDwe{Ko1UJY_xX4~PCxv9`wqZe+)$BX$Ufvd{MIAx`NC7t z#V{88Fg|Z{-@hlCHurd7xz4=n1Y$SPkcO%vqoW%d!=*T+@pM}pMlkfQi{Np~77+!* zT&cc6+J?=Ybt4q2ndQ3ctsC44Y|q%4HN2J+SX;tq+l!%VDs+a)xUNagyeGVQgt)ZZ ztD_G&h78$gxSPUZm@1i_1Orb9qanO4%i;EtyC!NH@)%GtsN*z-7$#2UlOa84IaY96 zs+}}9v%I3>48uSyy}IQG!Vz8;1q|ybVuWE($dnWHrmB?cG2nROJSu;!ydtU2>$o7P z2E?uvBqAAd)b|7Jm*nLG>>UQA#?UoSWn<{8TaH+2ZLN}1zG~B#LFb3>5+$*@?pqWYD7tG@UiE%b=9X#LyiUQH~bFOotYQWZ?`pXfFP?f=bBHvmEf| z<|5yYlFP_Kw%N30x8*g(eM?g3VlA28ps}Y(ToQip!1V)iW;)c{u$IDSD0HYQ!%(6} z`Ss$Z$P$^SCm&cwFl(|ZRsCC&$K+!KGJg>m+6@R zWZQsj67Y#aComZSMk9qxC3lAaJ;~_L6i4?dMz4^xTB(k_M*quwFB($hBj<4syH11a*do9y0u&OP_s{r%_1PXOz9CL_X-*ybnv)eg5EVJjHH4H;1t zGGYvm16P^GhmO$O9m{rWW=XWUc~}w$EpBtyu*?n1bVbi)h&6@Vu#Sbvu$DJ9u17O3dWL(Y!K6~J?9_G}4EgM}U1b>AAa@zY%Z4ec-S$3-;rlH*Np&vz%aA4H zpps!DP-KuwH7Z4_ye|_+eY2u7sDok9%|p?nyKIgQ<9-7@muZ}b*yB&5?@@#1^2`Qm z5yNQRr7|nLGpIV|HL8!M)UB?4Ahrw-IvFT?<%lMbUP4tk?mNq&N1^H_`Rb3OaA?f0 z?DY9lni?h_^YjFg^n`&p81CUdt#kA@2Z_FbSUx!|eTDRyzR6r#qu#l)O6vj^X`Q39 z#X)o;pN>;>;uP_V32PLZ34>n`gMUNO55l7BVbSXpy%ZMxIxPAvMboRK^{jM>B*^)~ z>^F>mq0hcf1rgF&LR8tLlZVI-5@u+p4nRs~KAi{mo3ce0Ipha{FA0DkkS_efz~?gur|ldc)k=H|uiU>B-^K(KMtmDlp1y&)bdj^vimA zkIapRY1fU_hUvP+VH`Teg`$fIq%p1{qhSIU1r`QU?+X)%E?c(cJ@P9aTy9?sNo}dP zBrp-GxNNzew55~8B&IZ6!L&e1Qr9yD1hRTL6wxbxF}LLh&uX~p2W#@k@=nzgNR(+eX*ajY$lPwwGJeq8BmtesVUEN4SQJnmuUAR4+r*Mx zlSee_xspIUDBSOkz}+FT22&JhTje~R%105X+onfmYvw_hXv~+QgO=EAwVfUL#PXrj zA*M@voE%PYMY`V8mdjz*N;dlujFEI%|EZQ|(>^t169mm~0#M1q1lNq+Fj{Y1_Og&1de{$C(7{UE;x^7|Y_K_SSph&#b9u*5yX Oydz9tAkL3th4^2!i74g( literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeParameterContext.class b/Assignment-2/Java-8/Java8Parser$TypeParameterContext.class new file mode 100644 index 0000000000000000000000000000000000000000..cbefa80f42a36f32156935ddcff6c41e34e8e3e2 GIT binary patch literal 1634 zcma)6T~8B16g|_@Za)_22cXg_ARlg9U{O)fZAg^FSW}3RhBsptI@E=B7q?r2KgIvx zgT7$&!QiVu%6MnHz;;WcA(>fb?m6e)IrsMWpC3N~JVRMRh#~n(Khf7;>vo&l2@D}3 zAu2;cjA7b$HCOw1%qdE5afjQRmg(?QhauMBPR%;vCc~mqsT8V~-B5MYY1-<^s%m#k z$7pfYu{l?3+-@1B-rTn8T$7MsPzLgES#{&UxYQAO$ufp9!Z1pTZ#qrxrO;-WRjP+n zgWA;1hPv6*+ik7TJ?S_`Q>_|pM-vPw8EIq~MtT_-%KZd`D(SwHPoF9oW5@?9d2V&g zx|d=C6SyJari@#dWLUWNiTa2cqGiK0oDK1^*FS3?MynKdCFB{hzI;Ue+~jr=Ioy#k zg=vNiC;#joOBv>sst;N#;`KLd3T^(`)f2>7Y>s< z48uE)zJIi(AA64%6CQQh5<6DM-sdk2L7npDwk%$ehIyN}otIXd=31_p)H3ccaT>9) z9+NMpKi_j4cn*>f*Zz_*Lt{8WKR!SV40D*Lb%FkyMwq_nw3s>wpCSB(z8UV(8Wrb} zx3nrKAmm0*(JrE;VkUluWH9(0igX!5$ptOaDkNq}B1C(VK)ExFo+BOv?osFxmVE%B zLVzsgM1X7%z$uhw+6M>|Kq{8<-!T4_KD#v}gmC0Nq7j2mRIGS_9PL6OoJxJZ4DJ?u zNEi30+D;B^b5I97%rV7SNx9KAqbI>`%qnx7Sa(D4+SY$n&7MdBAMwY`9LK0 i6-gM6T$RUIb9aVy+9ye2hy

PJawfY0c8EA^sPVoRR+k literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeParameterListContext.class b/Assignment-2/Java-8/Java8Parser$TypeParameterListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..8948d87ad4912a67a3327f4862abc979e485dd08 GIT binary patch literal 1613 zcma)6T~8B16g|_0Za=nA%7-W*D4^RGSyTkH4S_T<))X|-U}B8P0%NnV-IDE;;7{>C z_@FNseK7dyk22obF1Y;)^kHXu_ug~vopWaY{Qdb0z$Wr4LJaYj=83uX+H~vORnf;V z69~+eKOJ*=XI8o3ZlUG~ekx)JLsb#c5Jik(u4jJ9stdn{VX(r*n}*H(K%HS$FC7xM zVVh3HDA;Dbo=Z0)4Pn`atj4Y%P4tICb$ zd;xwBIjLa?DTXK^mupAdp{|B?!tnZP?P5g3D8?8f7r6`zda)Oua5*>1+^t%UX>ZpK zIPs0+rixn{CNRlx?|N-Ag!7hTiFL_#-O-BaT@|-!lz=kwG`YjwIHoY8;STOHjB(P_ zZIM`}F{JfUptRKl0a0`5T?sd*VP3+G@>5H6K}(3Bi5OCP#{o0+73h%2B_+$@+l}fT z^=0na6p8Lw6~`0}m-Z_imHFO{`bNvG=NRUts69uz$Ykg*yxQ8@l+J2zG2i|0J9Udg*q%1hunbE*l=r|qXP3!t7YdUq42d0K?jLQL$Nnis zq&7{o*iNnC?(^rCgiZzyW$}=1BN=>~*TsvP^nq4%$THs549l?g78%-ykoAfd=qZb4p->EnQ_;j3 z;^$D>3*S-dgDxz|jWZ0kC%^Yu7QG_FXPNO?BAMg{u?)9YeV{zLz<##uNui$9Om^}+ zZhWI{bC8&9RWlLR_9(K1hkn5Xt#WcDx$xyOxjFSdy?BJje&Q+t$Z1pA-)Uq#>!_MYG2|cc1AgZr4!=ACRq+yrD&{s4487w~O55uzS{lziWy9UEtGw2A0g|;un=Agez`SRT!-Pmz= zTCyXC42J8q7;>YEwCoHw|Dl%(Mckil+8yaaH82#m6yJNg!S`d1tgd8?W^Dz7a8KOx zHFPnd%ndyf4B1T)srx~sD6^I%p-1x}A_ixwEQaz-d15)SOe1U4!~lq`fFMw+{ebfvh1wyU>Q^kLph;4rjK(By;iTW;vIYfn pD17CAAg8B6J`%{MKOhDwBbF;z9jy#kX)O`27RaTau5 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeParametersContext.class b/Assignment-2/Java-8/Java8Parser$TypeParametersContext.class new file mode 100644 index 0000000000000000000000000000000000000000..18a93adc9cd25b92a5024a1fdc01ab55b9f642aa GIT binary patch literal 1291 zcma)6T~8B16g|^LwjYbM#VQJF5yb5lS&Sr*l$e+rwWbmy4etv~$U?g%yHkQc#sA=g zzG(Ep;Hy8%cxGF1fi{{ZGt)cwo_p@SXZGi>Z{Gnt#Um3bf!r(a*js<&g^>)i7{e74 z;}%S$1?Cc03$1rYl3rd%Dj7!gZlL6e5=ie$)#@I~Kw!ykG%C$*xbJ#_YKQLesvGtK z<#(j3LMh#r3_E_{wKuzavSuPHurM+~(~s03hbCoNn7~zmtIYPc*Oq7LH|*vC`MYf| z*mvt~FN$iTIP^}Dcv_$X?XZ4ESQ;kE`U$`fB*#7Q+<0*?LPLlPLP zb65hCO+S#Ez0MA~c{^=d3M#1wU5bEB{hoI?#k!BhR!F5E+0@rl=7yG z)XT1}#A*Z_Osppv36#z^@=Sfx=j@3JF-Otn`O3hTByb0Jxt95_41*^i?c|>spJ9CD znGcQYxVBq1*L#@fTBdD&;GJ`d8G7eVk+~S)&~;%Le0>=F61}PQ1iZmCrc<5$g2_)j z_PJz{B9~=;2wYn3V{s5L!(FpC^3@M#&VAx5ym$ajzs#F80uTbl>JOCOW1@PBlJgZe zQqW0Kal!p0k5RBzQK6NMDKOmm7s$+IkTrs={{=Bnjk7G_VY~}0b1yRQ7!$b2@JDeW F^BX)@Eqnj~ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$TypeVariableContext.class b/Assignment-2/Java-8/Java8Parser$TypeVariableContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fce46cd0a513e75ad3accf3eb26166de6b2a3672 GIT binary patch literal 1417 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 R{shi)9p-+Hy9r!E@+Z0a&s_ij literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannClassType_lf_unannClassOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannClassType_lf_unannClassOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4c28241d1d46a022ed5acde0b35fe1083be0732a GIT binary patch literal 1797 zcmbVM%Tg0T6g{0_o`WO-Q3=RXOad|pD33&}7)66ISQ6P%19Va&Nr#$rDEt)v!G&(H zbYbDvkFvZy31J|i6gS<|-S?h*=G@c$>-YB`0MdBug^MA$ZX6m*Zw#x(tpK`k%?pnP zFMJHEj-!cp!Vn@;HfpuPhXcM{E^gObI~!J3NNyF4U9Ju@RazZM249KGLUo@DhUr)~ z8_!j(l5PlDw)DdV-Kq;|R=6%L&h-MfDyA^X`RX1|dJ$k4a#l|ZQI&=?tD*_6sA?Lz zah;)u%Dke4LhIkP5{3L&H+j0nT^^9T&7c7V(1 zH>7jaC;EL1BTo8Cm9$l=SGbV1)*tlarWdy~+{OUIWJhh*#!i`b0@*#1z$}{Fq6HbgX*z}o;oFuvGZ2G+ z(<})?)-6h%ZwpABQ>M+q$<-voSd47t6tF#vp<6ob!!SXmoH?D`Mc7)?)LF5|j~Lvs zc$O&JEmm%&c3)y3`$F0-D$vzDH3~I~sBB7OcmK6<&=kz4+SNb{Y*y>mE?+YhbjZPP zM(IY6L7vy-%W93@1uZMcdG@{JbX(`H(C^mU5^ht9p|6t?7^REePcI(e2Z@KfG)~fL z1aA5Qe2GxneGKwZzAG9M(`qZ3R86G z!nB=qpGHM!oCvvS4pLI|7(FNOUrc;Lp)=4O391Su^b#jZ=)IWmltSr!aU{4Y!JC*G z{E8c2=(F+10aZBs9G>tR?abmqGa*W|s^AW-erg3b}_qfGTuR RffZ`JYJHN%UYb+z{{g}e!ju32 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannClassType_lfno_unannClassOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannClassType_lfno_unannClassOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..553c8675c9254e9075ded78dbf7f944426c52938 GIT binary patch literal 1387 zcmbVLT~8B16g|_$Za)_27VrzyDv13+77d9eB`P5r*Hko8c_j->n}zKxnVk}RHzsPL zi9Y!se9#w-J{WxUM;Y&KD{Q1hF`LZJ+`0GMbLQUrI6^FVP7u_eZ1EMZA^es0p6!9Oh2pZ|tnu)A!Kc%XVn{W) zs{5NPLxx(=l{dHc|kzpvr^M|nWve|BN zp@J@c$k#B?j{$}O%Jiu1?WdkA);36*AwG{y{^329v6JFYq+i;TTa@9$ETT zydM}Q2sN&>SG!ahjBc0MVx8|WXvLDvkd9t9EI-4{A$5ydG%8-5n)P>m=xvC~l5*BI z?>k#vYN_yrI%t_Czb)7J9XEu|#rREcP;1h7Eb>6z^#hs|!xmKVs84yoFngpY-kZ1K zUb=Cf<|Icm4@^f)fdZNfMESPLfwJ&DSWBm86;!Uiurz=s}P- g1oCztL_;~sQo&U8XShuNJmu}91k*^<$6z7-3spR6A^-pY literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..5b0bf2bca38c7a99248799790e519eb86d630b6b GIT binary patch literal 1084 zcma)5+iuf95Iq~WaV}08r?jO|E~OXj1YsVKKuU!`kq}0qLNxTe|X`E1Y|p)hP% zt(QdZ^gPjZB9ew{xB5ZX@r3LJ&cSUb7zpX_aVM@XmE9=7KuJg0zzix3>t{=2$Zq(; zm-iTMSZAej?QI=ZhS^l3EkBf8@Sq42=M2nYo?(Hjz9Y%T6kw=XtyFHT>R3pkY{TAG zfaeV?D!_R@^yO)I<-yooXa<%&$?*5w8Vpm-{w`;jY59V04)%6<(DrtE^kO8#am6kl zGH90VGUTI%l;_W9KIn_>#R@mwff)0P^E9go} zo11DQ7;>9Dl#lwMq{>`DI!C?mkYVoBm1J0))F}}a%e1cstvoOdh6}hzc8P8)(C7;& z)~cHJ0n^9O-qDre64|VBnTKR)zsQafH1g@S`qD=f-=72*kfGqu$eLd$^fIm_35rQE zXqEeKPl99QBXV4&(qiO01V9j|*1y7hgHrt%X6+EO87PuWR8dSqe)AiyDNrzz(pUZm kvM>qqoj`v40nxA;v8-V|IvK9hStVX2kVU__s@X>VH_qk>c>n+a literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..3771a8adbb0f243f8bbdfa1876738264483d776b GIT binary patch literal 1345 zcmb7E%Wl&^6g?BSaUM<^r@Sf8mSQIeBd7o=RizRMFbW0H&~4?W)5zdDl|8A#r|=If zU;}~$DqH>n36Ma7Pe9zUoir#yO*S*0xpU7sbM75~{`27@fEAQgq!{uKoIU6EV!yFbqR+m*7CTi_1 z&M;kfeZJb++2ldP+4N{fOS;AOw|JL9F-)5w8#yf7fZ^JI>L&u8^h<-jdUYay7z%5` zX+D4G>?Rx;=~9fATWfcMCco=S=;A;;gCa!2X6$*~bIzQ5?4Q5BeFyLmRTUYA;xqTiU4Q9@5f4?&FgzGp zSa~g6AsW6LMXh&-e8=Ax!A^I$_9Apd%)@=R&E<9@pjj_2APZGRPD36AhR0)ge-urI z$x!a__*K^*kT7hR%{L_7_Fd7j6Nz=lY6fA)c17%m_R*Rhc17$RaJzrIk?MK@8cHh4 z8s<=8Se>klA-mxTFTT%k!<>}Lv9?th4D%yCG`%S1f`>)uIHh3$iwt+U^fEDg8iN=d zvpE9YZ`m{mY1``7wv=;5!&xck4)1yKf2g^65|0TYL-8=JarsjwuFf#i2=+L`T+ue| F{x@Fjbx8mK literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannPrimitiveTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannPrimitiveTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e71d7f358407be84a93dea87d2784a075a2b7659 GIT binary patch literal 1240 zcma)6T~8B16g|_$F0@;=6af(wM8JL^%Y%u=5)*7R*3?3z^1i@?th7@yJ0UwclKou(`HoJ!O6{c^QXYs)>y6{;zn!&{E*2<5f7(-RlTE^85%g$#xn28p@R z-sgg0DPQf!p(N){gUgmD+-AMK%ZVe45feEJqqxYhc)rpM$yHBy>YlE4Ub)r6mWgqO z(TG_!&sSVwFhf;t+G!C3_jr2}YwEf;GEAL}sxx{SNk`avyZ`_I literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannReferenceTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannReferenceTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a129e8e20ae1eb62f5e9ae4af91a133cee03b2d6 GIT binary patch literal 1494 zcma)6T~pIQ6g{`W2HF%-uzUzAV8OISf`}tpWCodWtW(heH+6r)+}e=4C0k5g=$^yo0j9%q!MZbmt+$2n2FAqX;$#!gSnR{qlH}^_mOT{2zAd*zoc0J(; znMMx78b)x7FeLo$2XeHvlu$IP5p1Yfn@dxwa$(CS9Mf>yCma+fw%3Vor13A!33Emv z9_)(oC=$`%`SG66n);Qc2a?=-tkPYHQMIsoT_@gf8weSc9@Ro8sd!4YY^9!KX zoV|*(D^3WCQK%4lg7*4D7>gS)(r^X?uL{sPj)ent6;8)r~H^OkQCuSx$%H+h|8#~2_T0@9ZO z^X!_(R2+~A0h!By$Lz|tF#=FHx>_uaeM8@uRyrvpIGsf#^{4DQjr&c&C|kboLY7T=uM^;}((I*9E8D9Dy$!MHp pg-KpqkSLf5qCCKCU4BJQO`3nxLcAfwL literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannTypeContext.class b/Assignment-2/Java-8/Java8Parser$UnannTypeContext.class new file mode 100644 index 0000000000000000000000000000000000000000..54e6b71a7f9f9b8b6c6e4e0624d973455f3488a1 GIT binary patch literal 1248 zcma)6TW=CU6#j;-EcfN&trsuVwz5#WKA5PXF)<`Y3^q-Rec#fNtisUj4g`OS|G@`+ z(bO2Fi6-igGM-@p7lGK9IXjc{edjyhnb}{zKYao42$qfzL;R`TweRoRuE$*+3k>Ul zgSF?v7Gl?RT8?zOy!QH-m)k<}o{S+3T}LE=C}IpNQ=mXDL#n~$UZ*(%Gi>LpFR8B8 zv_-=zH*L==Rm^JJZCJLDP1ow)wcL)7PK#T4@IPxLGX8x?ID&~QX^9;Fw6;;QRTyQsz94;ns375$WP6oOIW0gk?tNCgG z;#(eYuVfx5_)-GP3ZCRWM+VT@&eVt)%)B|xIctn1hJ|wbh*TI=NAR6a>yW!O`>;tT zKJ$dDbC@S`h8KjG6T_)j#1Zc?XnC{35FNCy#>sGJj=9q1!@1Y!Yh)rBLGABLyZ-8# zeLNHyQFi!jvHf<(t@Fo@qD}`a-BMSLA+p0g`K0YhQdSW(mBGE^9>e0?YfeOCuZN9| z(q}b|ReBaFdR?GMuL4(Sy-K^A(C7<@7qXi60q6SA-qDuf+AtNy3GJ>E!4x3w1LFSz zK2s{)>Ht6^GQCh-`H1BEF?$Rl!1#)=(WlfKB*m|=Oi@YF(huH_la*>1r?jqNomQp& z9uW`)vc*&6-XK}*BUd=Vg%DJc(4Yms$Twt+@7SPI>NZ30TmK_joF@4}BtQR>Xvhz$ bm?#V)Ly_VVRZxy@((gxUzD+SsaSPEuKw~ob literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnannTypeVariableContext.class b/Assignment-2/Java-8/Java8Parser$UnannTypeVariableContext.class new file mode 100644 index 0000000000000000000000000000000000000000..29e9f459dd567d7c8b5c9c4604f1f8d8648e65c7 GIT binary patch literal 984 zcma)4%We}f6g|$gnPf5{kJ9pJd6b5d2O zR7MU&-Dn}|9iazO@qRn(iG~Lc85h2fEG{u@&P^LX?A35eFS#d`G>@&?e5sk7Mo{Ux z$TKWWRn(G^5lZL`awz&(!exdPK{e@_QW+}c)>P_+W;7~YOSj_Vilti?BWdQac|nha z{y37^v4t`gdw|c_~FS5emc=e*>c8g-hMdLhvKQU)cGlE9=xG(qM2xm$UF-p8V^5E z2N z5JijLAhbiPTdl2qM*8D9*h7NA50NZBBIp`!OcGXUwe(KD`TiU{X5OZYo47Rr?hpY{ zpji8X+&g4z-;t|+K_LMvl89e47TH0exJ&OQQm_K0um6i=d6uL>Bzu2J9NdXjHc*OJ PhP$+SM7}`ZCeptFt>5FV literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$UnaryExpressionContext.class b/Assignment-2/Java-8/Java8Parser$UnaryExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..87dc040ba8e0dd9a0996d6000848829b548363ba GIT binary patch literal 1865 zcma)7+fEZv6kUhbPHBfr0Z{}L0ihRQ5K+*g2^Nhtr9mjX4{$;T+8Hu4CG}JM2Ol&s z5;Q7a5{>#5eu#0;1sJA7<>j2tIeV>rS$m)U{QK@BfO*^((8LgbD(}g&OR{coT|k&2 zA1v1I-%m!{6SRN{I?QRQ+`+vMc3gJGgUszuFQDp!p~MXeggh3djZ z0o@`l;WER>`Lbh(%qgm3KCmJ@Z$6xpNM{3W#}S7x$aYm zVKiCr0Ed0|ZaUf2nng7r;<`oE$!m(~vt;O|W(jB=hVf+Tl#hljmSqU%sO$`F1x4k> zYGs}4C3(F}Czgi*tphy-*c~Oq5Sm|DU`SJ3fx^`H07X+h-QOgtFD+j|JlH+hY+N~ZD*&9=_g%rH!z(M5KG_HdP`-H*D3RAy*dG3AY& zMS0h)dDPO{VT-M3Regg$RxIjvPuEOr(>&9F6}e$P(F~J8%&XLX_Hc89p}(QzBy4c) z9N^hX(hKAR2GogKHi9mC|9}_>fgxIl>1zlf`US+(9ih-$TsTDN6@4Bz1fVcyQ`vLo8nncP447eVm>Go#?Xz^PgkX;&?disb%AMpd;lj&Fx{c;ff2eKZ= zL_K}Np-=efKanZDR~|r!N+F~(ef#KqeO#Luny5Bk5XpTdQwftUppSN|py34mygasc zD*26WZeq%{oFN9{Ku6{?dS0LM|j7`*j=_&1EFT^XfplbiRnZ_jzodCqfAfB*gQ6Tl)e0(=aS2l9bDzbfkn z*98O^;;xJMs%DsvmFiM;U+0FQXlhndOWa=-)rcZG(8&-YxvZKEkXvF%5mv)qpH`e;Dkn#kbn=wq;c~>93c0&jyhn4q zc|v@K%N~G+!$CwuX94o+7Oyh+6UjV7yRDEl*$mT7^tXA~D^Q{tKGK(%{%D$PI>pW@^y3c)HVY z)B8P6P74|O8n%Y!D2QJAKY{)%lmg>)#_4SwetH5TscygjE7}g>|4gscaXN$6r`%II zCvb&MD`3P42&KA~DIntYenx%?Bpq)Te6$81^#(jA*Hk0;rAF{C$UBY6)9|qxe9Q~~ zl3eLu;R^5*3n7&r`i7n_b*f?bi0Uf@bFazuDyE!(A+lC~0x|sgRQIkm<_&$3FztBG z5dvYLJN*lTAJLIM#9-<>F8E+&@!1WnWqFHO?j5etE%iP|;n)8MGJG23J%M~U2JvIY h&N7P|wq>|Ub_@Yqt~pZOs(GGllYsQIjCcGCoA%)VK(+(m2iT~h( zzG(Ep;HzI`j8XULbZWy4!b^8g&t7Y`=I(~)2K+e4VhE~=w1y0_4Dz>#%EH`k3akOfPwj0=o+~}xGplecurePQ(3~6F+c?aBOSSp!k zaRh>Mqs7Ic?OIO5+vPPCd4`34@=ezcY|F9Va1ke6z?h104VN%MsEf&D7+SN5>ycD; z(bUZHmWs;^V+mz-+Yh+QMGi$wX_&?gLy=QEL~o-QDy4b?+ozXNQnm7yB)qEOnk1ay z$9B+Hvd?ILZ|kT! zT}_Ezbtw9!o^a~s&Y(pTX}Y`om_aF(O@>TZRXJ)5D`)g9)DzBRi-xM(8>%M5a5J!W z4qjNVqvX=ErX99y(`$#Fb^3 z?7fY5Y^r6wWMu2oB|Cj)|)80SHZvl&ucYQ#}IRZ?Rl?f>M`|o1sP`EBHDyT+|4~T#$P^f-G@hyg{Cn#1vV=@I9Bo!tc2GIvF zst;mGl7fvA{MLCSS9(d(M3VVOqF_0UVqhh-47bTnQ3P54JM?#zn(va;$*v;v7rFdy AcmMzZ literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$VariableDeclaratorIdContext.class b/Assignment-2/Java-8/Java8Parser$VariableDeclaratorIdContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0eb6407e40af55864f2fbba6c8fdc73d28864a0e GIT binary patch literal 1226 zcma)5QBTuQ6#njt>(+I23=wdsQxLWe>0(rjBN#J6teM2fviHk&A%(6rw;kcH_#b@G z7mYp`eDy~ePrErA8ETf?dwcIW-*>)qzJ34kRHbxeg@ zF87YCrptq%aT)DUTOzxmp@10`MIE!a%CI`I+6!q6=`F`|!tF@pWQ7-UsHl#LYYejq zku4_(g(qYVb6C)^i0cfCf?6pjH92NWWdCgvjcO+XUD9zQ0$mViPBDwtxW8?((XSSgV21pD$h#*m`I}K8nMn2!P22YevMY9-2)d9cYvY*QL&n_` zLHOJc$iuqr(M)11iActzzK!jdOQ^zaGHQYTQa~CEH*t&BGJTby&H??-UViAWJ_63)!DSCnF#L literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$VariableDeclaratorListContext.class b/Assignment-2/Java-8/Java8Parser$VariableDeclaratorListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..02c6e589e3c101d3a32db02b293aaf69821cefef GIT binary patch literal 1663 zcma)7+fEZv6kVqSozf1a6mL)}D4@L{g9?JSA(9$nO+h0K?*p7P1H;suP6@x_Klq?8 zc#DdcM5BI_ai8gcL#JH&Fz0m7-fQj4+U>8u?>_-pL{UYEA@FIh&TQOLF|O~YrFa<)O<4_O2*b_mXcp%*oW})*$bm1zWTt!^pCdTet6XfG zwqY&TH#qTK!k~&F4JiyWTsvEu4B?__o6dq{J8Nm>?5c{(RElprvYXuIB8D_ZHC(|} zh7_lvir}!NFT+%(;*0N~3Ey}N*;NTVu3RgdQ+_Pho*#1_&PJSNxMq&U*-+xQC$i|E88R}cX2r_&R}rhhs&Q1 zzVoSv)EK7ike>)>HEWzZND zvH>v)O6?)G52Zcu1G(Plz>>JXhrV{_j~>gE8>D+IqaI5nm$*+X1MN|t$&VJ@^OiX& zl#`mv55K|1*K}#Vy?S9Ono?R-4R! zLHY%H^ZQ8W-eDvJNfL6q)gt+U{`gPKNKmkT3ZFd|e+jjsvuuVh=i5KERY`ql9m&(KpVL5bA zc-n0%>HAL0tF=5WyE=|2OcS$7#1JQ}g_D~?IpWZjb-~ zU2L2(v+WA+#ICu*_p9|%qoq!4;b~Xd7msY!@w9U;?Y_8Bb=5?Yuo~vxQA)fWCyrwd zmWgx{8O*cXtKk!(+YUGJgs@S(s-}9WY2rE|8Se+Ug!K! zs)JypgtQoOn6N&AH)RHlnjB2O?j6f6!6=sMgjmmrV623PQ*72s4(5NrUw`c6_6ezd zEsoB1MSCD{HZY-&7T<4m)RBDV^n`~j-8|(hN0{A{zJA{FH7l!oJfGhElRhCc<_RG` z!P((8&P{0=EBsLA_?>|xVF}B;-sasZ4E_QV<$1&SjBA%LKJu1uXOId@^6oAJj1?sM z1&Psu*PP1tJ5*pWm|3nYeL?Ee5Iv3vV4Wdqxtw~BrSusVIR=u9^wx)Aa-bU4Ij;rW z=QYs&m;o39^OYaSzDKHZiEQ~RZbT4}M0zdsN!rL*Z?MLv+--)-*Z&7{YaB!~Nartz ffntxPgmN$Pd*PU8hQQGc{vidLA8<@?+(hg*>w+}W literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$VariableInitializerListContext.class b/Assignment-2/Java-8/Java8Parser$VariableInitializerListContext.class new file mode 100644 index 0000000000000000000000000000000000000000..2f8358185e5a58c2c77fec361f37b6eb03f537fe GIT binary patch literal 1673 zcma)7+fEZv6kVr5phHR@=A7=?d#!z0yZwIr25a1X)wH>9 zXfRA`m0ik1w@s&}mu<7rDCXLhrfb={j4nz>RYgAr7zWNFFqAq0j9jHIYP#vTw$Kk2 zbkTHNYoF`wS_AwZa!SPz(hPlsT&?eMhq4;h2*bNyT zdMcK~*PHuWTvVktX=WQ%%`x4kpnIt!veYegUxvlyB11uryi2Jk{tUh47i(*);iREM z?bO04=_UOcRA2jsv%?P=qFT+{XjoaghLIwduk)jJ-pD z;Rs{-&zOinl0>|2c_g%)LsJnfNKmjL3V+xQWV#cimq23wL85r%u`FWAI~g9+nI>N1 Nz!UnrkU1C8_YYuEqYD54 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$VariableModifierContext.class b/Assignment-2/Java-8/Java8Parser$VariableModifierContext.class new file mode 100644 index 0000000000000000000000000000000000000000..cef4e67b89c92b8f7ebaed60f1c6f7a81bdf04d8 GIT binary patch literal 1225 zcma)+-%b-j6vn^l0$bVz+QNzoC`iR^i!2u=nv|Fj62g*gqfmRlz(`igteKq>Ud4Ct zLT@yBVer<6GM?G4wYCzunb|+z`JFT0IlDi8e*Feu8=EFF4Eg=wB6#*9kTI7g#u%0c z9+bC*h*Y4$NbE#H@k^D%1WXfI3zNt(tPYCXfeeGA4sS#!;p>pgG=yRLl&gbohxZ?B zIsO|;>vjTh>h5%cIIepYKa!_zAXG=X7f)Q-6)HUEZm+U|=(;Y!vM_~dhAfd=(HR#E z>yCFFLrKov7MJIt2s+K^gcGBHqKT4)STg?0{8% z7%MKg%)`cQ3wLmr!RBPJ9QKgGar}YE@~|NFv|edz*rJ6c4V&Yap&FJlLMXmhp9-WzC>QDv8XN}-(T3A+}yhqC&MqPQ#cSDUX44Al~hmVG* z$z!z_#fmEP1hpfXL>@B~N4#K|AGR}f9xF7D1^S{uJHtKPr*)a`R$~Z8qzTOvYYJQd(OS*-2L_Y`wsw{SP>9o$i7i8)E7IdWpgWo1O@~o zMF>bSOa-oH4&G@x-*Z%lx47ZdOvB+Fhaq*sou+xl4Td?XUN0%8bt0>Vqg(RDl5DjN zM{9A}u{f8T+-hltsyEDIUKNmGmu zeK}P2zJNOnBY}Dp&33rKtt`ecF5(`FbWgH#>$(k8nWO~rqFt(%_FbU+A|ALv1>Vt| zFwVfic3s(GC`yTSb^-!miq_VTQyVYRG@SdwQPlO#Tw$Je@ zW$yZ!Y5Qu{7$!rBVYetx^arGF9PW@&Y?r+w^fxsayl>?P7+_(ckR90k7?1;0em5=#B>xh{Mz48KgF^bP|FajHuw zSBhVe|J-XegBZ2Cilnqgp=DJ3gd**(IEg&of9yqfg{jib9G>`*D}+E8C{%u8>;ncX zml!L5!`&EMmY64Kmt_Na=_Tgrl!VVyy8JJYiGGk*1XBA8632qa@)V2S&hU)(abidi R!4g^Sn*N;D9PP_U{{a*bQC0u| literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$WhileStatementNoShortIfContext.class b/Assignment-2/Java-8/Java8Parser$WhileStatementNoShortIfContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a9b183170f89c33576e0990502d0b19bc326daf7 GIT binary patch literal 1564 zcma)+O;giQ6o%j1mVO3Gi;6%&kPp)q2_lMG#u=uAL!8)Qpabgw7YL*YCbvxeAujw6 zE_9=#3kSFUD94kw)(mL|H}^KlInR5~dC%>y-`{@#*uYu>5r)ib{ZfCntvfDv(uiRo zfw+VOk_;u^r@8%8!{oa{7renOQL}eXZAYlbRofE0B^Z(?T-5DzZZRy%s#?@+=S0yh zVLHm?s^T;)VKlfR9L|+GcN&JJn>G80R}x4wO!}2JTNe&@UBkAzaPL@>gh32343W%E z)8swfby+*33KUbfPL!&tyKW^+yi=qvo5Y71=KbQK6{eBLNCLMc+{PV-g}&tl6d2;` zhGmGCURV0JB#=Yr-%H>w!-(%-n&Ap=aVLXOj7yk6fuTS~a3{nV21V9~z|Y#eZ>t{<56Ca!I7>}=K;(!A$9 z!wj+g#}7Q8yU|N$~LejegOsGwJoTLrd@4P3MrmqASHP>??EWjAofGQ;oY~%XaBrNvcJ* zw+EZM3{xSd^zK70&?ttn(9$tOcPmeS2S5r8)AY=6pPr@>rC&g@G`tf1g6Jpu%`i)A z+t63X3#0_|RNVmZA3*o*Eo<}H0$#KUgn z8WD(reEBCvKVYzYh0)SCj78w7MA{AQs0ifbCYIN|t-3KcO{C`%|R;0C4tmi~s-t literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$WildcardBoundsContext.class b/Assignment-2/Java-8/Java8Parser$WildcardBoundsContext.class new file mode 100644 index 0000000000000000000000000000000000000000..002c15f001fc9325e9308439d39bdf09891822d3 GIT binary patch literal 1283 zcma)5T~8B16g|_0Za)?%g(?bak&4?ESxrnNmf%MLsi_U26@6XWu~}GV$?TTkPw_wa zpf4JIF!<_^GTz-5TwsZ2lbP8&_nv$1y=Q*?{{92NGdxfcV@SU=56z`bQ@UKHFoa%e|Jf#|6WJUaJ-Bj_ewy@N8)uJ~U)c zc-B5QJjuDy;&R^-rrmHlyrLq-kPj!=;_tZRqRm_H5BLDzC!}c@!6?HhW!mc5Csz#1 zdVQC;8@4IBM%6Z5w{ltjetDtjN(vc_tH^4Yz$C+bB<%}f4Dn@4Sl)_XZFH#@Vu;kX ziYp8gp=#@v>v6$l8aYg9xQ6R= KY@dmlUJu1ZkD*fB_JL+J-0*?2{K)doA9q`A*aQ~A222u)|+#*q(^pQG1l$xH|-g{*p3@9f2KJ?L2O{XW@ zeBJV)Ga;UfyCfl!af7?whU1c=wVI&81bX5wL+)%NPlZ1jRUl?buo-$?pclk&6Srv1 z(_bD6oq$9sGp>Ar@`=v$z-W#8c6Eu?+nA#@Pqw*%ce<2Kl6U$T$@2k^$+Zv#uSdZz zlQ-!+1g}sUwN#$@im}gh>~l#WM%ER?)hA@RgZV+gH0?fnB{TK$)VWXmDP7!!K5%?Q z00e<-`6qH8Fj787uJjF8WAKy2f`a==s`UC+QS?E<#won?FOcbrATJ1H<1dJUa*$;K W_kx{ak@hU*9ijvVlJt?Vko*HQ{wR|G literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser$WildcardContext.class b/Assignment-2/Java-8/Java8Parser$WildcardContext.class new file mode 100644 index 0000000000000000000000000000000000000000..654f49afff909be95867703cbf12bcdbee62cbf7 GIT binary patch literal 1572 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 z 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 UFP{~-6=(x;`PhM3KnKbH58DTw-2eap literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8Parser.g4 b/Assignment-2/Java-8/Java8Parser.g4 new file mode 100644 index 0000000..8b6b466 --- /dev/null +++ b/Assignment-2/Java-8/Java8Parser.g4 @@ -0,0 +1,1335 @@ +/* + * [The "BSD license"] + * Copyright (c) 2014 Terence Parr + * Copyright (c) 2014 Sam Harwell + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * A Java 8 grammar for ANTLR 4 derived from the Java Language Specification + * chapter 19. + * + * NOTE: This grammar results in a generated parser that is much slower + * than the Java 7 grammar in the grammars-v4/java directory. This + * one is, however, extremely close to the spec. + * + * You can test with + * + * $ antlr4 Java8.g4 + * $ javac *.java + * $ grun Java8 compilationUnit *.java + * + * Or, +~/antlr/code/grammars-v4/java8 $ java Test . +/Users/parrt/antlr/code/grammars-v4/java8/./Java8BaseListener.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Lexer.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Listener.java +/Users/parrt/antlr/code/grammars-v4/java8/./Java8Parser.java +/Users/parrt/antlr/code/grammars-v4/java8/./Test.java +Total lexer+parser time 30844ms. + */ + +// $antlr-format alignTrailingComments true, columnLimit 150, minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false, useTab false +// $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true, alignSemicolons hanging, alignColons hanging + +parser grammar Java8Parser; + +options { + tokenVocab = Java8Lexer; +} + +/* + * Productions from §3 (Lexical Structure) + */ + +literal + : IntegerLiteral + | FloatingPointLiteral + | BooleanLiteral + | CharacterLiteral + | StringLiteral + | NullLiteral + ; + +/* + * Productions from §4 (Types, Values, and Variables) + */ + +primitiveType + : annotation* numericType + | annotation* 'boolean' + ; + +numericType + : integralType + | floatingPointType + ; + +integralType + : 'byte' + | 'short' + | 'int' + | 'long' + | 'char' + ; + +floatingPointType + : 'float' + | 'double' + ; + +referenceType + : classOrInterfaceType + | typeVariable + | arrayType + ; + +classOrInterfaceType + : (classType_lfno_classOrInterfaceType | interfaceType_lfno_classOrInterfaceType) ( + classType_lf_classOrInterfaceType + | interfaceType_lf_classOrInterfaceType + )* + ; + +classType + : annotation* Identifier typeArguments? + | classOrInterfaceType '.' annotation* Identifier typeArguments? + ; + +classType_lf_classOrInterfaceType + : '.' annotation* Identifier typeArguments? + ; + +classType_lfno_classOrInterfaceType + : annotation* Identifier typeArguments? + ; + +interfaceType + : classType + ; + +interfaceType_lf_classOrInterfaceType + : classType_lf_classOrInterfaceType + ; + +interfaceType_lfno_classOrInterfaceType + : classType_lfno_classOrInterfaceType + ; + +typeVariable + : annotation* Identifier + ; + +arrayType + : primitiveType dims + | classOrInterfaceType dims + | typeVariable dims + ; + +dims + : annotation* '[' ']' (annotation* '[' ']')* + ; + +typeParameter + : typeParameterModifier* Identifier typeBound? + ; + +typeParameterModifier + : annotation + ; + +typeBound + : 'extends' typeVariable + | 'extends' classOrInterfaceType additionalBound* + ; + +additionalBound + : '&' interfaceType + ; + +typeArguments + : '<' typeArgumentList '>' + ; + +typeArgumentList + : typeArgument (',' typeArgument)* + ; + +typeArgument + : referenceType + | wildcard + ; + +wildcard + : annotation* '?' wildcardBounds? + ; + +wildcardBounds + : 'extends' referenceType + | 'super' referenceType + ; + +/* + * Productions from §6 (Names) + */ + +packageName + : Identifier + | packageName '.' Identifier + ; + +typeName + : Identifier + | packageOrTypeName '.' Identifier + ; + +packageOrTypeName + : Identifier + | packageOrTypeName '.' Identifier + ; + +expressionName + : Identifier + | ambiguousName '.' Identifier + ; + +methodName + : Identifier + ; + +ambiguousName + : Identifier + | ambiguousName '.' Identifier + ; + +/* + * Productions from §7 (Packages) + */ + +compilationUnit + : packageDeclaration? importDeclaration* typeDeclaration* EOF + ; + +packageDeclaration + : packageModifier* 'package' packageName ';' + ; + +packageModifier + : annotation + ; + +importDeclaration + : singleTypeImportDeclaration + | typeImportOnDemandDeclaration + | singleStaticImportDeclaration + | staticImportOnDemandDeclaration + ; + +singleTypeImportDeclaration + : 'import' typeName ';' + ; + +typeImportOnDemandDeclaration + : 'import' packageOrTypeName '.' '*' ';' + ; + +singleStaticImportDeclaration + : 'import' 'static' typeName '.' Identifier ';' + ; + +staticImportOnDemandDeclaration + : 'import' 'static' typeName '.' '*' ';' + ; + +typeDeclaration + : classDeclaration + | interfaceDeclaration + | ';' + ; + +/* + * Productions from §8 (Classes) + */ + +classDeclaration + : normalClassDeclaration + | enumDeclaration + ; + +normalClassDeclaration + : classModifier* 'class' Identifier typeParameters? superclass? superinterfaces? classBody + ; + +classModifier + : annotation + | 'public' + | 'protected' + | 'private' + | 'abstract' + | 'static' + | 'final' + | 'strictfp' + ; + +typeParameters + : '<' typeParameterList '>' + ; + +typeParameterList + : typeParameter (',' typeParameter)* + ; + +superclass + : 'extends' classType + ; + +superinterfaces + : 'implements' interfaceTypeList + ; + +interfaceTypeList + : interfaceType (',' interfaceType)* + ; + +classBody + : '{' classBodyDeclaration* '}' + ; + +classBodyDeclaration + : classMemberDeclaration + | instanceInitializer + | staticInitializer + | constructorDeclaration + ; + +classMemberDeclaration + : fieldDeclaration + | methodDeclaration + | classDeclaration + | interfaceDeclaration + | ';' + ; + +fieldDeclaration + : fieldModifier* unannType variableDeclaratorList ';' + ; + +fieldModifier + : annotation + | 'public' + | 'protected' + | 'private' + | 'static' + | 'final' + | 'transient' + | 'volatile' + ; + +variableDeclaratorList + : variableDeclarator (',' variableDeclarator)* + ; + +variableDeclarator + : variableDeclaratorId ('=' variableInitializer)? + ; + +variableDeclaratorId + : Identifier dims? + ; + +variableInitializer + : expression + | arrayInitializer + ; + +unannType + : unannPrimitiveType + | unannReferenceType + ; + +unannPrimitiveType + : numericType + | 'boolean' + ; + +unannReferenceType + : unannClassOrInterfaceType + | unannTypeVariable + | unannArrayType + ; + +unannClassOrInterfaceType + : ( + unannClassType_lfno_unannClassOrInterfaceType + | unannInterfaceType_lfno_unannClassOrInterfaceType + ) ( + unannClassType_lf_unannClassOrInterfaceType + | unannInterfaceType_lf_unannClassOrInterfaceType + )* + ; + +unannClassType + : Identifier typeArguments? + | unannClassOrInterfaceType '.' annotation* Identifier typeArguments? + ; + +unannClassType_lf_unannClassOrInterfaceType + : '.' annotation* Identifier typeArguments? + ; + +unannClassType_lfno_unannClassOrInterfaceType + : Identifier typeArguments? + ; + +unannInterfaceType + : unannClassType + ; + +unannInterfaceType_lf_unannClassOrInterfaceType + : unannClassType_lf_unannClassOrInterfaceType + ; + +unannInterfaceType_lfno_unannClassOrInterfaceType + : unannClassType_lfno_unannClassOrInterfaceType + ; + +unannTypeVariable + : Identifier + ; + +unannArrayType + : unannPrimitiveType dims + | unannClassOrInterfaceType dims + | unannTypeVariable dims + ; + +methodDeclaration + : methodModifier* methodHeader methodBody + ; + +methodModifier + : annotation + | 'public' + | 'protected' + | 'private' + | 'abstract' + | 'static' + | 'final' + | 'synchronized' + | 'native' + | 'strictfp' + ; + +methodHeader + : result methodDeclarator throws_? + | typeParameters annotation* result methodDeclarator throws_? + ; + +result + : unannType + | 'void' + ; + +methodDeclarator + : Identifier '(' formalParameterList? ')' dims? + ; + +formalParameterList + : receiverParameter + | formalParameters ',' lastFormalParameter + | lastFormalParameter + ; + +formalParameters + : formalParameter (',' formalParameter)* + | receiverParameter (',' formalParameter)* + ; + +formalParameter + : variableModifier* unannType variableDeclaratorId + ; + +variableModifier + : annotation + | 'final' + ; + +lastFormalParameter + : variableModifier* unannType annotation* '...' variableDeclaratorId + | formalParameter + ; + +receiverParameter + : annotation* unannType (Identifier '.')? 'this' + ; + +throws_ + : 'throws' exceptionTypeList + ; + +exceptionTypeList + : exceptionType (',' exceptionType)* + ; + +exceptionType + : classType + | typeVariable + ; + +methodBody + : block + | ';' + ; + +instanceInitializer + : block + ; + +staticInitializer + : 'static' block + ; + +constructorDeclaration + : constructorModifier* constructorDeclarator throws_? constructorBody + ; + +constructorModifier + : annotation + | 'public' + | 'protected' + | 'private' + ; + +constructorDeclarator + : typeParameters? simpleTypeName '(' formalParameterList? ')' + ; + +simpleTypeName + : Identifier + ; + +constructorBody + : '{' explicitConstructorInvocation? blockStatements? '}' + ; + +explicitConstructorInvocation + : typeArguments? 'this' '(' argumentList? ')' ';' + | typeArguments? 'super' '(' argumentList? ')' ';' + | expressionName '.' typeArguments? 'super' '(' argumentList? ')' ';' + | primary '.' typeArguments? 'super' '(' argumentList? ')' ';' + ; + +enumDeclaration + : classModifier* 'enum' Identifier superinterfaces? enumBody + ; + +enumBody + : '{' enumConstantList? ','? enumBodyDeclarations? '}' + ; + +enumConstantList + : enumConstant (',' enumConstant)* + ; + +enumConstant + : enumConstantModifier* Identifier ('(' argumentList? ')')? classBody? + ; + +enumConstantModifier + : annotation + ; + +enumBodyDeclarations + : ';' classBodyDeclaration* + ; + +/* + * Productions from §9 (Interfaces) + */ + +interfaceDeclaration + : normalInterfaceDeclaration + | annotationTypeDeclaration + ; + +normalInterfaceDeclaration + : interfaceModifier* 'interface' Identifier typeParameters? extendsInterfaces? interfaceBody + ; + +interfaceModifier + : annotation + | 'public' + | 'protected' + | 'private' + | 'abstract' + | 'static' + | 'strictfp' + ; + +extendsInterfaces + : 'extends' interfaceTypeList + ; + +interfaceBody + : '{' interfaceMemberDeclaration* '}' + ; + +interfaceMemberDeclaration + : constantDeclaration + | interfaceMethodDeclaration + | classDeclaration + | interfaceDeclaration + | ';' + ; + +constantDeclaration + : constantModifier* unannType variableDeclaratorList ';' + ; + +constantModifier + : annotation + | 'public' + | 'static' + | 'final' + ; + +interfaceMethodDeclaration + : interfaceMethodModifier* methodHeader methodBody + ; + +interfaceMethodModifier + : annotation + | 'public' + | 'abstract' + | 'default' + | 'static' + | 'strictfp' + ; + +annotationTypeDeclaration + : interfaceModifier* '@' 'interface' Identifier annotationTypeBody + ; + +annotationTypeBody + : '{' annotationTypeMemberDeclaration* '}' + ; + +annotationTypeMemberDeclaration + : annotationTypeElementDeclaration + | constantDeclaration + | classDeclaration + | interfaceDeclaration + | ';' + ; + +annotationTypeElementDeclaration + : annotationTypeElementModifier* unannType Identifier '(' ')' dims? defaultValue? ';' + ; + +annotationTypeElementModifier + : annotation + | 'public' + | 'abstract' + ; + +defaultValue + : 'default' elementValue + ; + +annotation + : normalAnnotation + | markerAnnotation + | singleElementAnnotation + ; + +normalAnnotation + : '@' typeName '(' elementValuePairList? ')' + ; + +elementValuePairList + : elementValuePair (',' elementValuePair)* + ; + +elementValuePair + : Identifier '=' elementValue + ; + +elementValue + : conditionalExpression + | elementValueArrayInitializer + | annotation + ; + +elementValueArrayInitializer + : '{' elementValueList? ','? '}' + ; + +elementValueList + : elementValue (',' elementValue)* + ; + +markerAnnotation + : '@' typeName + ; + +singleElementAnnotation + : '@' typeName '(' elementValue ')' + ; + +/* + * Productions from §10 (Arrays) + */ + +arrayInitializer + : '{' variableInitializerList? ','? '}' + ; + +variableInitializerList + : variableInitializer (',' variableInitializer)* + ; + +/* + * Productions from §14 (Blocks and Statements) + */ + +block + : '{' blockStatements? '}' + ; + +blockStatements + : blockStatement+ + ; + +blockStatement + : localVariableDeclarationStatement + | classDeclaration + | statement + ; + +localVariableDeclarationStatement + : localVariableDeclaration ';' + ; + +localVariableDeclaration + : variableModifier* unannType variableDeclaratorList + ; + +statement + : statementWithoutTrailingSubstatement + | labeledStatement + | ifThenStatement + | ifThenElseStatement + | whileStatement + | forStatement + ; + +statementNoShortIf + : statementWithoutTrailingSubstatement + | labeledStatementNoShortIf + | ifThenElseStatementNoShortIf + | whileStatementNoShortIf + | forStatementNoShortIf + ; + +statementWithoutTrailingSubstatement + : block + | emptyStatement_ + | expressionStatement + | assertStatement + | switchStatement + | doStatement + | breakStatement + | continueStatement + | returnStatement + | synchronizedStatement + | throwStatement + | tryStatement + ; + +emptyStatement_ + : ';' + ; + +labeledStatement + : Identifier ':' statement + ; + +labeledStatementNoShortIf + : Identifier ':' statementNoShortIf + ; + +expressionStatement + : statementExpression ';' + ; + +statementExpression + : assignment + | preIncrementExpression + | preDecrementExpression + | postIncrementExpression + | postDecrementExpression + | methodInvocation + | classInstanceCreationExpression + ; + +ifThenStatement + : 'if' '(' expression ')' statement + ; + +ifThenElseStatement + : 'if' '(' expression ')' statementNoShortIf 'else' statement + ; + +ifThenElseStatementNoShortIf + : 'if' '(' expression ')' statementNoShortIf 'else' statementNoShortIf + ; + +assertStatement + : 'assert' expression ';' + | 'assert' expression ':' expression ';' + ; + +switchStatement + : 'switch' '(' expression ')' switchBlock + ; + +switchBlock + : '{' switchBlockStatementGroup* switchLabel* '}' + ; + +switchBlockStatementGroup + : switchLabels blockStatements + ; + +switchLabels + : switchLabel switchLabel* + ; + +switchLabel + : 'case' constantExpression ':' + | 'case' enumConstantName ':' + | 'default' ':' + ; + +enumConstantName + : Identifier + ; + +whileStatement + : 'while' '(' expression ')' statement + ; + +whileStatementNoShortIf + : 'while' '(' expression ')' statementNoShortIf + ; + +doStatement + : 'do' statement 'while' '(' expression ')' ';' + ; + +forStatement + : basicForStatement + | enhancedForStatement + ; + +forStatementNoShortIf + : basicForStatementNoShortIf + | enhancedForStatementNoShortIf + ; + +basicForStatement + : 'for' '(' forInit? ';' expression? ';' forUpdate? ')' statement + ; + +basicForStatementNoShortIf + : 'for' '(' forInit? ';' expression? ';' forUpdate? ')' statementNoShortIf + ; + +forInit + : statementExpressionList + | localVariableDeclaration + ; + +forUpdate + : statementExpressionList + ; + +statementExpressionList + : statementExpression (',' statementExpression)* + ; + +enhancedForStatement + : 'for' '(' variableModifier* unannType variableDeclaratorId ':' expression ')' statement + ; + +enhancedForStatementNoShortIf + : 'for' '(' variableModifier* unannType variableDeclaratorId ':' expression ')' statementNoShortIf + ; + +breakStatement + : 'break' Identifier? ';' + ; + +continueStatement + : 'continue' Identifier? ';' + ; + +returnStatement + : 'return' expression? ';' + ; + +throwStatement + : 'throw' expression ';' + ; + +synchronizedStatement + : 'synchronized' '(' expression ')' block + ; + +tryStatement + : 'try' block catches + | 'try' block catches? finally_ + | tryWithResourcesStatement + ; + +catches + : catchClause catchClause* + ; + +catchClause + : 'catch' '(' catchFormalParameter ')' block + ; + +catchFormalParameter + : variableModifier* catchType variableDeclaratorId + ; + +catchType + : unannClassType ('|' classType)* + ; + +finally_ + : 'finally' block + ; + +tryWithResourcesStatement + : 'try' resourceSpecification block catches? finally_? + ; + +resourceSpecification + : '(' resourceList ';'? ')' + ; + +resourceList + : resource (';' resource)* + ; + +resource + : variableModifier* unannType variableDeclaratorId '=' expression + ; + +/* + * Productions from §15 (Expressions) + */ + +primary + : (primaryNoNewArray_lfno_primary | arrayCreationExpression) primaryNoNewArray_lf_primary* + ; + +primaryNoNewArray + : literal + | typeName ('[' ']')* '.' 'class' + | 'void' '.' 'class' + | 'this' + | typeName '.' 'this' + | '(' expression ')' + | classInstanceCreationExpression + | fieldAccess + | arrayAccess + | methodInvocation + | methodReference + ; + +primaryNoNewArray_lf_arrayAccess + : + ; + +primaryNoNewArray_lfno_arrayAccess + : literal + | typeName ('[' ']')* '.' 'class' + | 'void' '.' 'class' + | 'this' + | typeName '.' 'this' + | '(' expression ')' + | classInstanceCreationExpression + | fieldAccess + | methodInvocation + | methodReference + ; + +primaryNoNewArray_lf_primary + : classInstanceCreationExpression_lf_primary + | fieldAccess_lf_primary + | arrayAccess_lf_primary + | methodInvocation_lf_primary + | methodReference_lf_primary + ; + +primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary + : + ; + +primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary + : classInstanceCreationExpression_lf_primary + | fieldAccess_lf_primary + | methodInvocation_lf_primary + | methodReference_lf_primary + ; + +primaryNoNewArray_lfno_primary + : literal + | typeName ('[' ']')* '.' 'class' + | unannPrimitiveType ('[' ']')* '.' 'class' + | 'void' '.' 'class' + | 'this' + | typeName '.' 'this' + | '(' expression ')' + | classInstanceCreationExpression_lfno_primary + | fieldAccess_lfno_primary + | arrayAccess_lfno_primary + | methodInvocation_lfno_primary + | methodReference_lfno_primary + ; + +primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary + : + ; + +primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary + : literal + | typeName ('[' ']')* '.' 'class' + | unannPrimitiveType ('[' ']')* '.' 'class' + | 'void' '.' 'class' + | 'this' + | typeName '.' 'this' + | '(' expression ')' + | classInstanceCreationExpression_lfno_primary + | fieldAccess_lfno_primary + | methodInvocation_lfno_primary + | methodReference_lfno_primary + ; + +classInstanceCreationExpression + : 'new' typeArguments? annotation* Identifier ('.' annotation* Identifier)* typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + | expressionName '.' 'new' typeArguments? annotation* Identifier typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + | primary '.' 'new' typeArguments? annotation* Identifier typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + ; + +classInstanceCreationExpression_lf_primary + : '.' 'new' typeArguments? annotation* Identifier typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + ; + +classInstanceCreationExpression_lfno_primary + : 'new' typeArguments? annotation* Identifier ('.' annotation* Identifier)* typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + | expressionName '.' 'new' typeArguments? annotation* Identifier typeArgumentsOrDiamond? '(' argumentList? ')' classBody? + ; + +typeArgumentsOrDiamond + : typeArguments + | '<' '>' + ; + +fieldAccess + : primary '.' Identifier + | 'super' '.' Identifier + | typeName '.' 'super' '.' Identifier + ; + +fieldAccess_lf_primary + : '.' Identifier + ; + +fieldAccess_lfno_primary + : 'super' '.' Identifier + | typeName '.' 'super' '.' Identifier + ; + +arrayAccess + : (expressionName '[' expression ']' | primaryNoNewArray_lfno_arrayAccess '[' expression ']') ( + primaryNoNewArray_lf_arrayAccess '[' expression ']' + )* + ; + +arrayAccess_lf_primary + : primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary '[' expression ']' ( + primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary '[' expression ']' + )* + ; + +arrayAccess_lfno_primary + : ( + expressionName '[' expression ']' + | primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary '[' expression ']' + ) (primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary '[' expression ']')* + ; + +methodInvocation + : methodName '(' argumentList? ')' + | typeName '.' typeArguments? Identifier '(' argumentList? ')' + | expressionName '.' typeArguments? Identifier '(' argumentList? ')' + | primary '.' typeArguments? Identifier '(' argumentList? ')' + | 'super' '.' typeArguments? Identifier '(' argumentList? ')' + | typeName '.' 'super' '.' typeArguments? Identifier '(' argumentList? ')' + ; + +methodInvocation_lf_primary + : '.' typeArguments? Identifier '(' argumentList? ')' + ; + +methodInvocation_lfno_primary + : methodName '(' argumentList? ')' + | typeName '.' typeArguments? Identifier '(' argumentList? ')' + | expressionName '.' typeArguments? Identifier '(' argumentList? ')' + | 'super' '.' typeArguments? Identifier '(' argumentList? ')' + | typeName '.' 'super' '.' typeArguments? Identifier '(' argumentList? ')' + ; + +argumentList + : expression (',' expression)* + ; + +methodReference + : expressionName '::' typeArguments? Identifier + | referenceType '::' typeArguments? Identifier + | primary '::' typeArguments? Identifier + | 'super' '::' typeArguments? Identifier + | typeName '.' 'super' '::' typeArguments? Identifier + | classType '::' typeArguments? 'new' + | arrayType '::' 'new' + ; + +methodReference_lf_primary + : '::' typeArguments? Identifier + ; + +methodReference_lfno_primary + : expressionName '::' typeArguments? Identifier + | referenceType '::' typeArguments? Identifier + | 'super' '::' typeArguments? Identifier + | typeName '.' 'super' '::' typeArguments? Identifier + | classType '::' typeArguments? 'new' + | arrayType '::' 'new' + ; + +arrayCreationExpression + : 'new' primitiveType dimExprs dims? + | 'new' classOrInterfaceType dimExprs dims? + | 'new' primitiveType dims arrayInitializer + | 'new' classOrInterfaceType dims arrayInitializer + ; + +dimExprs + : dimExpr dimExpr* + ; + +dimExpr + : annotation* '[' expression ']' + ; + +constantExpression + : expression + ; + +expression + : lambdaExpression + | assignmentExpression + ; + +lambdaExpression + : lambdaParameters '->' lambdaBody + ; + +lambdaParameters + : Identifier + | '(' formalParameterList? ')' + | '(' inferredFormalParameterList ')' + ; + +inferredFormalParameterList + : Identifier (',' Identifier)* + ; + +lambdaBody + : expression + | block + ; + +assignmentExpression + : conditionalExpression + | assignment + ; + +assignment + : leftHandSide assignmentOperator expression + ; + +leftHandSide + : expressionName + | fieldAccess + | arrayAccess + ; + +assignmentOperator + : '=' + | '*=' + | '/=' + | '%=' + | '+=' + | '-=' + | '<<=' + | '>>=' + | '>>>=' + | '&=' + | '^=' + | '|=' + ; + +conditionalExpression + : conditionalOrExpression + | conditionalOrExpression '?' expression ':' conditionalExpression + ; + +conditionalOrExpression + : conditionalAndExpression + | conditionalOrExpression '||' conditionalAndExpression + ; + +conditionalAndExpression + : inclusiveOrExpression + | conditionalAndExpression '&&' inclusiveOrExpression + ; + +inclusiveOrExpression + : exclusiveOrExpression + | inclusiveOrExpression '|' exclusiveOrExpression + ; + +exclusiveOrExpression + : andExpression + | exclusiveOrExpression '^' andExpression + ; + +andExpression + : equalityExpression + | andExpression '&' equalityExpression + ; + +equalityExpression + : relationalExpression + | equalityExpression '==' relationalExpression + | equalityExpression '!=' relationalExpression + ; + +relationalExpression + : shiftExpression + | relationalExpression '<' shiftExpression + | relationalExpression '>' shiftExpression + | relationalExpression '<=' shiftExpression + | relationalExpression '>=' shiftExpression + | relationalExpression 'instanceof' referenceType + ; + +shiftExpression + : additiveExpression + | shiftExpression '<' '<' additiveExpression + | shiftExpression '>' '>' additiveExpression + | shiftExpression '>' '>' '>' additiveExpression + ; + +additiveExpression + : multiplicativeExpression + | additiveExpression '+' multiplicativeExpression + | additiveExpression '-' multiplicativeExpression + ; + +multiplicativeExpression + : unaryExpression + | multiplicativeExpression '*' unaryExpression + | multiplicativeExpression '/' unaryExpression + | multiplicativeExpression '%' unaryExpression + ; + +unaryExpression + : preIncrementExpression + | preDecrementExpression + | '+' unaryExpression + | '-' unaryExpression + | unaryExpressionNotPlusMinus + ; + +preIncrementExpression + : '++' unaryExpression + ; + +preDecrementExpression + : '--' unaryExpression + ; + +unaryExpressionNotPlusMinus + : postfixExpression + | '~' unaryExpression + | '!' unaryExpression + | castExpression + ; + +postfixExpression + : (primary | expressionName) ( + postIncrementExpression_lf_postfixExpression + | postDecrementExpression_lf_postfixExpression + )* + ; + +postIncrementExpression + : postfixExpression '++' + ; + +postIncrementExpression_lf_postfixExpression + : '++' + ; + +postDecrementExpression + : postfixExpression '--' + ; + +postDecrementExpression_lf_postfixExpression + : '--' + ; + +castExpression + : '(' primitiveType ')' unaryExpression + | '(' referenceType additionalBound* ')' unaryExpressionNotPlusMinus + | '(' referenceType additionalBound* ')' lambdaExpression + ; \ No newline at end of file diff --git a/Assignment-2/Java-8/Java8Parser.interp b/Assignment-2/Java-8/Java8Parser.interp new file mode 100644 index 0000000..ab8fc6d --- /dev/null +++ b/Assignment-2/Java-8/Java8Parser.interp @@ -0,0 +1,461 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'native' +'new' +'package' +'private' +'protected' +'public' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'transient' +'try' +'void' +'volatile' +'while' +null +null +null +null +null +'null' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'->' +'::' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +null +'@' +'...' +null +null +null + +token symbolic names: +null +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +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 + +rule names: +literal +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 +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 + + +atn: +[4, 1, 107, 2843, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 1, 0, 1, 0, 1, 1, 5, 1, 476, 8, 1, 10, 1, 12, 1, 479, 9, 1, 1, 1, 1, 1, 5, 1, 483, 8, 1, 10, 1, 12, 1, 486, 9, 1, 1, 1, 3, 1, 489, 8, 1, 1, 2, 1, 2, 3, 2, 493, 8, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 3, 5, 502, 8, 5, 1, 6, 1, 6, 3, 6, 506, 8, 6, 1, 6, 1, 6, 5, 6, 510, 8, 6, 10, 6, 12, 6, 513, 9, 6, 1, 7, 5, 7, 516, 8, 7, 10, 7, 12, 7, 519, 9, 7, 1, 7, 1, 7, 3, 7, 523, 8, 7, 1, 7, 1, 7, 1, 7, 5, 7, 528, 8, 7, 10, 7, 12, 7, 531, 9, 7, 1, 7, 1, 7, 3, 7, 535, 8, 7, 3, 7, 537, 8, 7, 1, 8, 1, 8, 5, 8, 541, 8, 8, 10, 8, 12, 8, 544, 9, 8, 1, 8, 1, 8, 3, 8, 548, 8, 8, 1, 9, 5, 9, 551, 8, 9, 10, 9, 12, 9, 554, 9, 9, 1, 9, 1, 9, 3, 9, 558, 8, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 5, 13, 567, 8, 13, 10, 13, 12, 13, 570, 9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 583, 8, 14, 1, 15, 5, 15, 586, 8, 15, 10, 15, 12, 15, 589, 9, 15, 1, 15, 1, 15, 1, 15, 5, 15, 594, 8, 15, 10, 15, 12, 15, 597, 9, 15, 1, 15, 1, 15, 5, 15, 601, 8, 15, 10, 15, 12, 15, 604, 9, 15, 1, 16, 5, 16, 607, 8, 16, 10, 16, 12, 16, 610, 9, 16, 1, 16, 1, 16, 3, 16, 614, 8, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 623, 8, 18, 10, 18, 12, 18, 626, 9, 18, 3, 18, 628, 8, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 5, 21, 640, 8, 21, 10, 21, 12, 21, 643, 9, 21, 1, 22, 1, 22, 3, 22, 647, 8, 22, 1, 23, 5, 23, 650, 8, 23, 10, 23, 12, 23, 653, 9, 23, 1, 23, 1, 23, 3, 23, 657, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 663, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 671, 8, 25, 10, 25, 12, 25, 674, 9, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 681, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 689, 8, 27, 10, 27, 12, 27, 692, 9, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 699, 8, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 709, 8, 30, 10, 30, 12, 30, 712, 9, 30, 1, 31, 3, 31, 715, 8, 31, 1, 31, 5, 31, 718, 8, 31, 10, 31, 12, 31, 721, 9, 31, 1, 31, 5, 31, 724, 8, 31, 10, 31, 12, 31, 727, 9, 31, 1, 31, 1, 31, 1, 32, 5, 32, 732, 8, 32, 10, 32, 12, 32, 735, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 747, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 776, 8, 39, 1, 40, 1, 40, 3, 40, 780, 8, 40, 1, 41, 5, 41, 783, 8, 41, 10, 41, 12, 41, 786, 9, 41, 1, 41, 1, 41, 1, 41, 3, 41, 791, 8, 41, 1, 41, 3, 41, 794, 8, 41, 1, 41, 3, 41, 797, 8, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 809, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 5, 44, 818, 8, 44, 10, 44, 12, 44, 821, 9, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 5, 47, 832, 8, 47, 10, 47, 12, 47, 835, 9, 47, 1, 48, 1, 48, 5, 48, 839, 8, 48, 10, 48, 12, 48, 842, 9, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 850, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 857, 8, 50, 1, 51, 5, 51, 860, 8, 51, 10, 51, 12, 51, 863, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 877, 8, 52, 1, 53, 1, 53, 1, 53, 5, 53, 882, 8, 53, 10, 53, 12, 53, 885, 9, 53, 1, 54, 1, 54, 1, 54, 3, 54, 890, 8, 54, 1, 55, 1, 55, 3, 55, 894, 8, 55, 1, 56, 1, 56, 3, 56, 898, 8, 56, 1, 57, 1, 57, 3, 57, 902, 8, 57, 1, 58, 1, 58, 3, 58, 906, 8, 58, 1, 59, 1, 59, 1, 59, 3, 59, 911, 8, 59, 1, 60, 1, 60, 3, 60, 915, 8, 60, 1, 60, 1, 60, 5, 60, 919, 8, 60, 10, 60, 12, 60, 922, 9, 60, 1, 61, 1, 61, 3, 61, 926, 8, 61, 1, 61, 1, 61, 1, 61, 5, 61, 931, 8, 61, 10, 61, 12, 61, 934, 9, 61, 1, 61, 1, 61, 3, 61, 938, 8, 61, 3, 61, 940, 8, 61, 1, 62, 1, 62, 5, 62, 944, 8, 62, 10, 62, 12, 62, 947, 9, 62, 1, 62, 1, 62, 3, 62, 951, 8, 62, 1, 63, 1, 63, 3, 63, 955, 8, 63, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 974, 8, 68, 1, 69, 5, 69, 977, 8, 69, 10, 69, 12, 69, 980, 9, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 995, 8, 70, 1, 71, 1, 71, 1, 71, 3, 71, 1000, 8, 71, 1, 71, 1, 71, 5, 71, 1004, 8, 71, 10, 71, 12, 71, 1007, 9, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1012, 8, 71, 3, 71, 1014, 8, 71, 1, 72, 1, 72, 3, 72, 1018, 8, 72, 1, 73, 1, 73, 1, 73, 3, 73, 1023, 8, 73, 1, 73, 1, 73, 3, 73, 1027, 8, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 3, 74, 1035, 8, 74, 1, 75, 1, 75, 1, 75, 5, 75, 1040, 8, 75, 10, 75, 12, 75, 1043, 9, 75, 1, 75, 1, 75, 1, 75, 5, 75, 1048, 8, 75, 10, 75, 12, 75, 1051, 9, 75, 3, 75, 1053, 8, 75, 1, 76, 5, 76, 1056, 8, 76, 10, 76, 12, 76, 1059, 9, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 3, 77, 1066, 8, 77, 1, 78, 5, 78, 1069, 8, 78, 10, 78, 12, 78, 1072, 9, 78, 1, 78, 1, 78, 5, 78, 1076, 8, 78, 10, 78, 12, 78, 1079, 9, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 1085, 8, 78, 1, 79, 5, 79, 1088, 8, 79, 10, 79, 12, 79, 1091, 9, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1096, 8, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 5, 81, 1106, 8, 81, 10, 81, 12, 81, 1109, 9, 81, 1, 82, 1, 82, 3, 82, 1113, 8, 82, 1, 83, 1, 83, 3, 83, 1117, 8, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 86, 5, 86, 1125, 8, 86, 10, 86, 12, 86, 1128, 9, 86, 1, 86, 1, 86, 3, 86, 1132, 8, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 1140, 8, 87, 1, 88, 3, 88, 1143, 8, 88, 1, 88, 1, 88, 1, 88, 3, 88, 1148, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 90, 1, 90, 3, 90, 1156, 8, 90, 1, 90, 3, 90, 1159, 8, 90, 1, 90, 1, 90, 1, 91, 3, 91, 1164, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1169, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1174, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1179, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1186, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1191, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1199, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1204, 8, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1209, 8, 91, 1, 92, 5, 92, 1212, 8, 92, 10, 92, 12, 92, 1215, 9, 92, 1, 92, 1, 92, 1, 92, 3, 92, 1220, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 3, 93, 1226, 8, 93, 1, 93, 3, 93, 1229, 8, 93, 1, 93, 3, 93, 1232, 8, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 5, 94, 1239, 8, 94, 10, 94, 12, 94, 1242, 9, 94, 1, 95, 5, 95, 1245, 8, 95, 10, 95, 12, 95, 1248, 9, 95, 1, 95, 1, 95, 1, 95, 3, 95, 1253, 8, 95, 1, 95, 3, 95, 1256, 8, 95, 1, 95, 3, 95, 1259, 8, 95, 1, 96, 1, 96, 1, 97, 1, 97, 5, 97, 1265, 8, 97, 10, 97, 12, 97, 1268, 9, 97, 1, 98, 1, 98, 3, 98, 1272, 8, 98, 1, 99, 5, 99, 1275, 8, 99, 10, 99, 12, 99, 1278, 9, 99, 1, 99, 1, 99, 1, 99, 3, 99, 1283, 8, 99, 1, 99, 3, 99, 1286, 8, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 1297, 8, 100, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 5, 102, 1304, 8, 102, 10, 102, 12, 102, 1307, 9, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 1316, 8, 103, 1, 104, 5, 104, 1319, 8, 104, 10, 104, 12, 104, 1322, 9, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1332, 8, 105, 1, 106, 5, 106, 1335, 8, 106, 10, 106, 12, 106, 1338, 9, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1349, 8, 107, 1, 108, 5, 108, 1352, 8, 108, 10, 108, 12, 108, 1355, 9, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 5, 109, 1364, 8, 109, 10, 109, 12, 109, 1367, 9, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 3, 110, 1376, 8, 110, 1, 111, 5, 111, 1379, 8, 111, 10, 111, 12, 111, 1382, 9, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 1389, 8, 111, 1, 111, 3, 111, 1392, 8, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 3, 112, 1399, 8, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 3, 114, 1407, 8, 114, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 1413, 8, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 5, 116, 1420, 8, 116, 10, 116, 12, 116, 1423, 9, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 3, 118, 1432, 8, 118, 1, 119, 1, 119, 3, 119, 1436, 8, 119, 1, 119, 3, 119, 1439, 8, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 5, 120, 1446, 8, 120, 10, 120, 12, 120, 1449, 9, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 3, 123, 1462, 8, 123, 1, 123, 3, 123, 1465, 8, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 5, 124, 1472, 8, 124, 10, 124, 12, 124, 1475, 9, 124, 1, 125, 1, 125, 3, 125, 1479, 8, 125, 1, 125, 1, 125, 1, 126, 4, 126, 1484, 8, 126, 11, 126, 12, 126, 1485, 1, 127, 1, 127, 1, 127, 3, 127, 1491, 8, 127, 1, 128, 1, 128, 1, 128, 1, 129, 5, 129, 1497, 8, 129, 10, 129, 12, 129, 1500, 9, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 1511, 8, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 1518, 8, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 1532, 8, 132, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 1554, 8, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 3, 141, 1588, 8, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 5, 143, 1598, 8, 143, 10, 143, 12, 143, 1601, 9, 143, 1, 143, 5, 143, 1604, 8, 143, 10, 143, 12, 143, 1607, 9, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 5, 145, 1616, 8, 145, 10, 145, 12, 145, 1619, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 1631, 8, 146, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 3, 151, 1657, 8, 151, 1, 152, 1, 152, 3, 152, 1661, 8, 152, 1, 153, 1, 153, 1, 153, 3, 153, 1666, 8, 153, 1, 153, 1, 153, 3, 153, 1670, 8, 153, 1, 153, 1, 153, 3, 153, 1674, 8, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 3, 154, 1682, 8, 154, 1, 154, 1, 154, 3, 154, 1686, 8, 154, 1, 154, 1, 154, 3, 154, 1690, 8, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 3, 155, 1697, 8, 155, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 5, 157, 1704, 8, 157, 10, 157, 12, 157, 1707, 9, 157, 1, 158, 1, 158, 1, 158, 5, 158, 1712, 8, 158, 10, 158, 12, 158, 1715, 9, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 5, 159, 1727, 8, 159, 10, 159, 12, 159, 1730, 9, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 3, 160, 1741, 8, 160, 1, 160, 1, 160, 1, 161, 1, 161, 3, 161, 1747, 8, 161, 1, 161, 1, 161, 1, 162, 1, 162, 3, 162, 1753, 8, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 3, 165, 1774, 8, 165, 1, 165, 1, 165, 1, 165, 3, 165, 1779, 8, 165, 1, 166, 1, 166, 5, 166, 1783, 8, 166, 10, 166, 12, 166, 1786, 9, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 5, 168, 1795, 8, 168, 10, 168, 12, 168, 1798, 9, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 5, 169, 1806, 8, 169, 10, 169, 12, 169, 1809, 9, 169, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 3, 171, 1818, 8, 171, 1, 171, 3, 171, 1821, 8, 171, 1, 172, 1, 172, 1, 172, 3, 172, 1826, 8, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 5, 173, 1833, 8, 173, 10, 173, 12, 173, 1836, 9, 173, 1, 174, 5, 174, 1839, 8, 174, 10, 174, 12, 174, 1842, 9, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 3, 175, 1851, 8, 175, 1, 175, 5, 175, 1854, 8, 175, 10, 175, 12, 175, 1857, 9, 175, 1, 176, 1, 176, 1, 176, 1, 176, 5, 176, 1863, 8, 176, 10, 176, 12, 176, 1866, 9, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 1888, 8, 176, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 5, 178, 1896, 8, 178, 10, 178, 12, 178, 1899, 9, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 1920, 8, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 1927, 8, 179, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 3, 181, 1935, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 5, 182, 1941, 8, 182, 10, 182, 12, 182, 1944, 9, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 5, 182, 1952, 8, 182, 10, 182, 12, 182, 1955, 9, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 1977, 8, 182, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 5, 184, 1985, 8, 184, 10, 184, 12, 184, 1988, 9, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 5, 184, 1996, 8, 184, 10, 184, 12, 184, 1999, 9, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 3, 184, 2020, 8, 184, 1, 185, 1, 185, 3, 185, 2024, 8, 185, 1, 185, 5, 185, 2027, 8, 185, 10, 185, 12, 185, 2030, 9, 185, 1, 185, 1, 185, 1, 185, 5, 185, 2035, 8, 185, 10, 185, 12, 185, 2038, 9, 185, 1, 185, 5, 185, 2041, 8, 185, 10, 185, 12, 185, 2044, 9, 185, 1, 185, 3, 185, 2047, 8, 185, 1, 185, 1, 185, 3, 185, 2051, 8, 185, 1, 185, 1, 185, 3, 185, 2055, 8, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2061, 8, 185, 1, 185, 5, 185, 2064, 8, 185, 10, 185, 12, 185, 2067, 9, 185, 1, 185, 1, 185, 3, 185, 2071, 8, 185, 1, 185, 1, 185, 3, 185, 2075, 8, 185, 1, 185, 1, 185, 3, 185, 2079, 8, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2085, 8, 185, 1, 185, 5, 185, 2088, 8, 185, 10, 185, 12, 185, 2091, 9, 185, 1, 185, 1, 185, 3, 185, 2095, 8, 185, 1, 185, 1, 185, 3, 185, 2099, 8, 185, 1, 185, 1, 185, 3, 185, 2103, 8, 185, 3, 185, 2105, 8, 185, 1, 186, 1, 186, 1, 186, 3, 186, 2110, 8, 186, 1, 186, 5, 186, 2113, 8, 186, 10, 186, 12, 186, 2116, 9, 186, 1, 186, 1, 186, 3, 186, 2120, 8, 186, 1, 186, 1, 186, 3, 186, 2124, 8, 186, 1, 186, 1, 186, 3, 186, 2128, 8, 186, 1, 187, 1, 187, 3, 187, 2132, 8, 187, 1, 187, 5, 187, 2135, 8, 187, 10, 187, 12, 187, 2138, 9, 187, 1, 187, 1, 187, 1, 187, 5, 187, 2143, 8, 187, 10, 187, 12, 187, 2146, 9, 187, 1, 187, 5, 187, 2149, 8, 187, 10, 187, 12, 187, 2152, 9, 187, 1, 187, 3, 187, 2155, 8, 187, 1, 187, 1, 187, 3, 187, 2159, 8, 187, 1, 187, 1, 187, 3, 187, 2163, 8, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2169, 8, 187, 1, 187, 5, 187, 2172, 8, 187, 10, 187, 12, 187, 2175, 9, 187, 1, 187, 1, 187, 3, 187, 2179, 8, 187, 1, 187, 1, 187, 3, 187, 2183, 8, 187, 1, 187, 1, 187, 3, 187, 2187, 8, 187, 3, 187, 2189, 8, 187, 1, 188, 1, 188, 1, 188, 3, 188, 2194, 8, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 2209, 8, 189, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2223, 8, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 3, 192, 2235, 8, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 5, 192, 2242, 8, 192, 10, 192, 12, 192, 2245, 9, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 5, 193, 2256, 8, 193, 10, 193, 12, 193, 2259, 9, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 3, 194, 2271, 8, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 5, 194, 2278, 8, 194, 10, 194, 12, 194, 2281, 9, 194, 1, 195, 1, 195, 1, 195, 3, 195, 2286, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2293, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2298, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2305, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2310, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2317, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2322, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2329, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2334, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2342, 8, 195, 1, 195, 1, 195, 1, 195, 3, 195, 2347, 8, 195, 1, 195, 1, 195, 3, 195, 2351, 8, 195, 1, 196, 1, 196, 3, 196, 2355, 8, 196, 1, 196, 1, 196, 1, 196, 3, 196, 2360, 8, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 3, 197, 2367, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2374, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2379, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2386, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2391, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2398, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2403, 8, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2411, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 2416, 8, 197, 1, 197, 1, 197, 3, 197, 2420, 8, 197, 1, 198, 1, 198, 1, 198, 5, 198, 2425, 8, 198, 10, 198, 12, 198, 2428, 9, 198, 1, 199, 1, 199, 1, 199, 3, 199, 2433, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2440, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2447, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2454, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2462, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2469, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 2477, 8, 199, 1, 200, 1, 200, 3, 200, 2481, 8, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 3, 201, 2488, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2495, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2502, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2510, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2517, 8, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2525, 8, 201, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2531, 8, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2537, 8, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2549, 8, 202, 1, 203, 1, 203, 5, 203, 2553, 8, 203, 10, 203, 12, 203, 2556, 9, 203, 1, 204, 5, 204, 2559, 8, 204, 10, 204, 12, 204, 2562, 9, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 206, 1, 206, 3, 206, 2572, 8, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 3, 208, 2581, 8, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 2588, 8, 208, 1, 209, 1, 209, 1, 209, 5, 209, 2593, 8, 209, 10, 209, 12, 209, 2596, 9, 209, 1, 210, 1, 210, 3, 210, 2600, 8, 210, 1, 211, 1, 211, 3, 211, 2604, 8, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 3, 213, 2613, 8, 213, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 2624, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 5, 216, 2632, 8, 216, 10, 216, 12, 216, 2635, 9, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 5, 217, 2643, 8, 217, 10, 217, 12, 217, 2646, 9, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 5, 218, 2654, 8, 218, 10, 218, 12, 218, 2657, 9, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 5, 219, 2665, 8, 219, 10, 219, 12, 219, 2668, 9, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 5, 220, 2676, 8, 220, 10, 220, 12, 220, 2679, 9, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 5, 221, 2690, 8, 221, 10, 221, 12, 221, 2693, 9, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 5, 222, 2713, 8, 222, 10, 222, 12, 222, 2716, 9, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 5, 223, 2734, 8, 223, 10, 223, 12, 223, 2737, 9, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 5, 224, 2748, 8, 224, 10, 224, 12, 224, 2751, 9, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 5, 225, 2765, 8, 225, 10, 225, 12, 225, 2768, 9, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 3, 226, 2777, 8, 226, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 2791, 8, 229, 1, 230, 1, 230, 3, 230, 2795, 8, 230, 1, 230, 1, 230, 5, 230, 2799, 8, 230, 10, 230, 12, 230, 2802, 9, 230, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 5, 235, 2822, 8, 235, 10, 235, 12, 235, 2825, 9, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 5, 235, 2833, 8, 235, 10, 235, 12, 235, 2836, 9, 235, 1, 235, 1, 235, 1, 235, 3, 235, 2841, 8, 235, 1, 235, 0, 13, 50, 54, 60, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 236, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 0, 4, 1, 0, 51, 56, 5, 0, 5, 5, 8, 8, 27, 27, 29, 29, 37, 37, 2, 0, 14, 14, 20, 20, 2, 0, 66, 66, 91, 101, 3084, 0, 472, 1, 0, 0, 0, 2, 488, 1, 0, 0, 0, 4, 492, 1, 0, 0, 0, 6, 494, 1, 0, 0, 0, 8, 496, 1, 0, 0, 0, 10, 501, 1, 0, 0, 0, 12, 505, 1, 0, 0, 0, 14, 536, 1, 0, 0, 0, 16, 538, 1, 0, 0, 0, 18, 552, 1, 0, 0, 0, 20, 559, 1, 0, 0, 0, 22, 561, 1, 0, 0, 0, 24, 563, 1, 0, 0, 0, 26, 568, 1, 0, 0, 0, 28, 582, 1, 0, 0, 0, 30, 587, 1, 0, 0, 0, 32, 608, 1, 0, 0, 0, 34, 615, 1, 0, 0, 0, 36, 627, 1, 0, 0, 0, 38, 629, 1, 0, 0, 0, 40, 632, 1, 0, 0, 0, 42, 636, 1, 0, 0, 0, 44, 646, 1, 0, 0, 0, 46, 651, 1, 0, 0, 0, 48, 662, 1, 0, 0, 0, 50, 664, 1, 0, 0, 0, 52, 680, 1, 0, 0, 0, 54, 682, 1, 0, 0, 0, 56, 698, 1, 0, 0, 0, 58, 700, 1, 0, 0, 0, 60, 702, 1, 0, 0, 0, 62, 714, 1, 0, 0, 0, 64, 733, 1, 0, 0, 0, 66, 740, 1, 0, 0, 0, 68, 746, 1, 0, 0, 0, 70, 748, 1, 0, 0, 0, 72, 752, 1, 0, 0, 0, 74, 758, 1, 0, 0, 0, 76, 765, 1, 0, 0, 0, 78, 775, 1, 0, 0, 0, 80, 779, 1, 0, 0, 0, 82, 784, 1, 0, 0, 0, 84, 808, 1, 0, 0, 0, 86, 810, 1, 0, 0, 0, 88, 814, 1, 0, 0, 0, 90, 822, 1, 0, 0, 0, 92, 825, 1, 0, 0, 0, 94, 828, 1, 0, 0, 0, 96, 836, 1, 0, 0, 0, 98, 849, 1, 0, 0, 0, 100, 856, 1, 0, 0, 0, 102, 861, 1, 0, 0, 0, 104, 876, 1, 0, 0, 0, 106, 878, 1, 0, 0, 0, 108, 886, 1, 0, 0, 0, 110, 891, 1, 0, 0, 0, 112, 897, 1, 0, 0, 0, 114, 901, 1, 0, 0, 0, 116, 905, 1, 0, 0, 0, 118, 910, 1, 0, 0, 0, 120, 914, 1, 0, 0, 0, 122, 939, 1, 0, 0, 0, 124, 941, 1, 0, 0, 0, 126, 952, 1, 0, 0, 0, 128, 956, 1, 0, 0, 0, 130, 958, 1, 0, 0, 0, 132, 960, 1, 0, 0, 0, 134, 962, 1, 0, 0, 0, 136, 973, 1, 0, 0, 0, 138, 978, 1, 0, 0, 0, 140, 994, 1, 0, 0, 0, 142, 1013, 1, 0, 0, 0, 144, 1017, 1, 0, 0, 0, 146, 1019, 1, 0, 0, 0, 148, 1034, 1, 0, 0, 0, 150, 1052, 1, 0, 0, 0, 152, 1057, 1, 0, 0, 0, 154, 1065, 1, 0, 0, 0, 156, 1084, 1, 0, 0, 0, 158, 1089, 1, 0, 0, 0, 160, 1099, 1, 0, 0, 0, 162, 1102, 1, 0, 0, 0, 164, 1112, 1, 0, 0, 0, 166, 1116, 1, 0, 0, 0, 168, 1118, 1, 0, 0, 0, 170, 1120, 1, 0, 0, 0, 172, 1126, 1, 0, 0, 0, 174, 1139, 1, 0, 0, 0, 176, 1142, 1, 0, 0, 0, 178, 1151, 1, 0, 0, 0, 180, 1153, 1, 0, 0, 0, 182, 1208, 1, 0, 0, 0, 184, 1213, 1, 0, 0, 0, 186, 1223, 1, 0, 0, 0, 188, 1235, 1, 0, 0, 0, 190, 1246, 1, 0, 0, 0, 192, 1260, 1, 0, 0, 0, 194, 1262, 1, 0, 0, 0, 196, 1271, 1, 0, 0, 0, 198, 1276, 1, 0, 0, 0, 200, 1296, 1, 0, 0, 0, 202, 1298, 1, 0, 0, 0, 204, 1301, 1, 0, 0, 0, 206, 1315, 1, 0, 0, 0, 208, 1320, 1, 0, 0, 0, 210, 1331, 1, 0, 0, 0, 212, 1336, 1, 0, 0, 0, 214, 1348, 1, 0, 0, 0, 216, 1353, 1, 0, 0, 0, 218, 1361, 1, 0, 0, 0, 220, 1375, 1, 0, 0, 0, 222, 1380, 1, 0, 0, 0, 224, 1398, 1, 0, 0, 0, 226, 1400, 1, 0, 0, 0, 228, 1406, 1, 0, 0, 0, 230, 1408, 1, 0, 0, 0, 232, 1416, 1, 0, 0, 0, 234, 1424, 1, 0, 0, 0, 236, 1431, 1, 0, 0, 0, 238, 1433, 1, 0, 0, 0, 240, 1442, 1, 0, 0, 0, 242, 1450, 1, 0, 0, 0, 244, 1453, 1, 0, 0, 0, 246, 1459, 1, 0, 0, 0, 248, 1468, 1, 0, 0, 0, 250, 1476, 1, 0, 0, 0, 252, 1483, 1, 0, 0, 0, 254, 1490, 1, 0, 0, 0, 256, 1492, 1, 0, 0, 0, 258, 1498, 1, 0, 0, 0, 260, 1510, 1, 0, 0, 0, 262, 1517, 1, 0, 0, 0, 264, 1531, 1, 0, 0, 0, 266, 1533, 1, 0, 0, 0, 268, 1535, 1, 0, 0, 0, 270, 1539, 1, 0, 0, 0, 272, 1543, 1, 0, 0, 0, 274, 1553, 1, 0, 0, 0, 276, 1555, 1, 0, 0, 0, 278, 1561, 1, 0, 0, 0, 280, 1569, 1, 0, 0, 0, 282, 1587, 1, 0, 0, 0, 284, 1589, 1, 0, 0, 0, 286, 1595, 1, 0, 0, 0, 288, 1610, 1, 0, 0, 0, 290, 1613, 1, 0, 0, 0, 292, 1630, 1, 0, 0, 0, 294, 1632, 1, 0, 0, 0, 296, 1634, 1, 0, 0, 0, 298, 1640, 1, 0, 0, 0, 300, 1646, 1, 0, 0, 0, 302, 1656, 1, 0, 0, 0, 304, 1660, 1, 0, 0, 0, 306, 1662, 1, 0, 0, 0, 308, 1678, 1, 0, 0, 0, 310, 1696, 1, 0, 0, 0, 312, 1698, 1, 0, 0, 0, 314, 1700, 1, 0, 0, 0, 316, 1708, 1, 0, 0, 0, 318, 1723, 1, 0, 0, 0, 320, 1738, 1, 0, 0, 0, 322, 1744, 1, 0, 0, 0, 324, 1750, 1, 0, 0, 0, 326, 1756, 1, 0, 0, 0, 328, 1760, 1, 0, 0, 0, 330, 1778, 1, 0, 0, 0, 332, 1780, 1, 0, 0, 0, 334, 1787, 1, 0, 0, 0, 336, 1796, 1, 0, 0, 0, 338, 1802, 1, 0, 0, 0, 340, 1810, 1, 0, 0, 0, 342, 1813, 1, 0, 0, 0, 344, 1822, 1, 0, 0, 0, 346, 1829, 1, 0, 0, 0, 348, 1840, 1, 0, 0, 0, 350, 1850, 1, 0, 0, 0, 352, 1887, 1, 0, 0, 0, 354, 1889, 1, 0, 0, 0, 356, 1919, 1, 0, 0, 0, 358, 1926, 1, 0, 0, 0, 360, 1928, 1, 0, 0, 0, 362, 1934, 1, 0, 0, 0, 364, 1976, 1, 0, 0, 0, 366, 1978, 1, 0, 0, 0, 368, 2019, 1, 0, 0, 0, 370, 2104, 1, 0, 0, 0, 372, 2106, 1, 0, 0, 0, 374, 2188, 1, 0, 0, 0, 376, 2193, 1, 0, 0, 0, 378, 2208, 1, 0, 0, 0, 380, 2210, 1, 0, 0, 0, 382, 2222, 1, 0, 0, 0, 384, 2234, 1, 0, 0, 0, 386, 2246, 1, 0, 0, 0, 388, 2270, 1, 0, 0, 0, 390, 2350, 1, 0, 0, 0, 392, 2352, 1, 0, 0, 0, 394, 2419, 1, 0, 0, 0, 396, 2421, 1, 0, 0, 0, 398, 2476, 1, 0, 0, 0, 400, 2478, 1, 0, 0, 0, 402, 2524, 1, 0, 0, 0, 404, 2548, 1, 0, 0, 0, 406, 2550, 1, 0, 0, 0, 408, 2560, 1, 0, 0, 0, 410, 2567, 1, 0, 0, 0, 412, 2571, 1, 0, 0, 0, 414, 2573, 1, 0, 0, 0, 416, 2587, 1, 0, 0, 0, 418, 2589, 1, 0, 0, 0, 420, 2599, 1, 0, 0, 0, 422, 2603, 1, 0, 0, 0, 424, 2605, 1, 0, 0, 0, 426, 2612, 1, 0, 0, 0, 428, 2614, 1, 0, 0, 0, 430, 2623, 1, 0, 0, 0, 432, 2625, 1, 0, 0, 0, 434, 2636, 1, 0, 0, 0, 436, 2647, 1, 0, 0, 0, 438, 2658, 1, 0, 0, 0, 440, 2669, 1, 0, 0, 0, 442, 2680, 1, 0, 0, 0, 444, 2694, 1, 0, 0, 0, 446, 2717, 1, 0, 0, 0, 448, 2738, 1, 0, 0, 0, 450, 2752, 1, 0, 0, 0, 452, 2776, 1, 0, 0, 0, 454, 2778, 1, 0, 0, 0, 456, 2781, 1, 0, 0, 0, 458, 2790, 1, 0, 0, 0, 460, 2794, 1, 0, 0, 0, 462, 2803, 1, 0, 0, 0, 464, 2806, 1, 0, 0, 0, 466, 2808, 1, 0, 0, 0, 468, 2811, 1, 0, 0, 0, 470, 2840, 1, 0, 0, 0, 472, 473, 7, 0, 0, 0, 473, 1, 1, 0, 0, 0, 474, 476, 3, 228, 114, 0, 475, 474, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 480, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480, 489, 3, 4, 2, 0, 481, 483, 3, 228, 114, 0, 482, 481, 1, 0, 0, 0, 483, 486, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 487, 1, 0, 0, 0, 486, 484, 1, 0, 0, 0, 487, 489, 5, 3, 0, 0, 488, 477, 1, 0, 0, 0, 488, 484, 1, 0, 0, 0, 489, 3, 1, 0, 0, 0, 490, 493, 3, 6, 3, 0, 491, 493, 3, 8, 4, 0, 492, 490, 1, 0, 0, 0, 492, 491, 1, 0, 0, 0, 493, 5, 1, 0, 0, 0, 494, 495, 7, 1, 0, 0, 495, 7, 1, 0, 0, 0, 496, 497, 7, 2, 0, 0, 497, 9, 1, 0, 0, 0, 498, 502, 3, 12, 6, 0, 499, 502, 3, 26, 13, 0, 500, 502, 3, 28, 14, 0, 501, 498, 1, 0, 0, 0, 501, 499, 1, 0, 0, 0, 501, 500, 1, 0, 0, 0, 502, 11, 1, 0, 0, 0, 503, 506, 3, 18, 9, 0, 504, 506, 3, 24, 12, 0, 505, 503, 1, 0, 0, 0, 505, 504, 1, 0, 0, 0, 506, 511, 1, 0, 0, 0, 507, 510, 3, 16, 8, 0, 508, 510, 3, 22, 11, 0, 509, 507, 1, 0, 0, 0, 509, 508, 1, 0, 0, 0, 510, 513, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 13, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 514, 516, 3, 228, 114, 0, 515, 514, 1, 0, 0, 0, 516, 519, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 520, 1, 0, 0, 0, 519, 517, 1, 0, 0, 0, 520, 522, 5, 102, 0, 0, 521, 523, 3, 40, 20, 0, 522, 521, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 537, 1, 0, 0, 0, 524, 525, 3, 12, 6, 0, 525, 529, 5, 65, 0, 0, 526, 528, 3, 228, 114, 0, 527, 526, 1, 0, 0, 0, 528, 531, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 532, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 532, 534, 5, 102, 0, 0, 533, 535, 3, 40, 20, 0, 534, 533, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 537, 1, 0, 0, 0, 536, 517, 1, 0, 0, 0, 536, 524, 1, 0, 0, 0, 537, 15, 1, 0, 0, 0, 538, 542, 5, 65, 0, 0, 539, 541, 3, 228, 114, 0, 540, 539, 1, 0, 0, 0, 541, 544, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0, 0, 543, 545, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 545, 547, 5, 102, 0, 0, 546, 548, 3, 40, 20, 0, 547, 546, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 17, 1, 0, 0, 0, 549, 551, 3, 228, 114, 0, 550, 549, 1, 0, 0, 0, 551, 554, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 555, 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 555, 557, 5, 102, 0, 0, 556, 558, 3, 40, 20, 0, 557, 556, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 19, 1, 0, 0, 0, 559, 560, 3, 14, 7, 0, 560, 21, 1, 0, 0, 0, 561, 562, 3, 16, 8, 0, 562, 23, 1, 0, 0, 0, 563, 564, 3, 18, 9, 0, 564, 25, 1, 0, 0, 0, 565, 567, 3, 228, 114, 0, 566, 565, 1, 0, 0, 0, 567, 570, 1, 0, 0, 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 571, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 571, 572, 5, 102, 0, 0, 572, 27, 1, 0, 0, 0, 573, 574, 3, 2, 1, 0, 574, 575, 3, 30, 15, 0, 575, 583, 1, 0, 0, 0, 576, 577, 3, 12, 6, 0, 577, 578, 3, 30, 15, 0, 578, 583, 1, 0, 0, 0, 579, 580, 3, 26, 13, 0, 580, 581, 3, 30, 15, 0, 581, 583, 1, 0, 0, 0, 582, 573, 1, 0, 0, 0, 582, 576, 1, 0, 0, 0, 582, 579, 1, 0, 0, 0, 583, 29, 1, 0, 0, 0, 584, 586, 3, 228, 114, 0, 585, 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588, 590, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 591, 5, 61, 0, 0, 591, 602, 5, 62, 0, 0, 592, 594, 3, 228, 114, 0, 593, 592, 1, 0, 0, 0, 594, 597, 1, 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 598, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 599, 5, 61, 0, 0, 599, 601, 5, 62, 0, 0, 600, 595, 1, 0, 0, 0, 601, 604, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 31, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 605, 607, 3, 34, 17, 0, 606, 605, 1, 0, 0, 0, 607, 610, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 611, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 611, 613, 5, 102, 0, 0, 612, 614, 3, 36, 18, 0, 613, 612, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 33, 1, 0, 0, 0, 615, 616, 3, 228, 114, 0, 616, 35, 1, 0, 0, 0, 617, 618, 5, 17, 0, 0, 618, 628, 3, 26, 13, 0, 619, 620, 5, 17, 0, 0, 620, 624, 3, 12, 6, 0, 621, 623, 3, 38, 19, 0, 622, 621, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 617, 1, 0, 0, 0, 627, 619, 1, 0, 0, 0, 628, 37, 1, 0, 0, 0, 629, 630, 5, 85, 0, 0, 630, 631, 3, 20, 10, 0, 631, 39, 1, 0, 0, 0, 632, 633, 5, 68, 0, 0, 633, 634, 3, 42, 21, 0, 634, 635, 5, 67, 0, 0, 635, 41, 1, 0, 0, 0, 636, 641, 3, 44, 22, 0, 637, 638, 5, 64, 0, 0, 638, 640, 3, 44, 22, 0, 639, 637, 1, 0, 0, 0, 640, 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 43, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 644, 647, 3, 10, 5, 0, 645, 647, 3, 46, 23, 0, 646, 644, 1, 0, 0, 0, 646, 645, 1, 0, 0, 0, 647, 45, 1, 0, 0, 0, 648, 650, 3, 228, 114, 0, 649, 648, 1, 0, 0, 0, 650, 653, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 654, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 654, 656, 5, 71, 0, 0, 655, 657, 3, 48, 24, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 47, 1, 0, 0, 0, 658, 659, 5, 17, 0, 0, 659, 663, 3, 10, 5, 0, 660, 661, 5, 40, 0, 0, 661, 663, 3, 10, 5, 0, 662, 658, 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 49, 1, 0, 0, 0, 664, 665, 6, 25, -1, 0, 665, 666, 5, 102, 0, 0, 666, 672, 1, 0, 0, 0, 667, 668, 10, 1, 0, 0, 668, 669, 5, 65, 0, 0, 669, 671, 5, 102, 0, 0, 670, 667, 1, 0, 0, 0, 671, 674, 1, 0, 0, 0, 672, 670, 1, 0, 0, 0, 672, 673, 1, 0, 0, 0, 673, 51, 1, 0, 0, 0, 674, 672, 1, 0, 0, 0, 675, 681, 5, 102, 0, 0, 676, 677, 3, 54, 27, 0, 677, 678, 5, 65, 0, 0, 678, 679, 5, 102, 0, 0, 679, 681, 1, 0, 0, 0, 680, 675, 1, 0, 0, 0, 680, 676, 1, 0, 0, 0, 681, 53, 1, 0, 0, 0, 682, 683, 6, 27, -1, 0, 683, 684, 5, 102, 0, 0, 684, 690, 1, 0, 0, 0, 685, 686, 10, 1, 0, 0, 686, 687, 5, 65, 0, 0, 687, 689, 5, 102, 0, 0, 688, 685, 1, 0, 0, 0, 689, 692, 1, 0, 0, 0, 690, 688, 1, 0, 0, 0, 690, 691, 1, 0, 0, 0, 691, 55, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 693, 699, 5, 102, 0, 0, 694, 695, 3, 60, 30, 0, 695, 696, 5, 65, 0, 0, 696, 697, 5, 102, 0, 0, 697, 699, 1, 0, 0, 0, 698, 693, 1, 0, 0, 0, 698, 694, 1, 0, 0, 0, 699, 57, 1, 0, 0, 0, 700, 701, 5, 102, 0, 0, 701, 59, 1, 0, 0, 0, 702, 703, 6, 30, -1, 0, 703, 704, 5, 102, 0, 0, 704, 710, 1, 0, 0, 0, 705, 706, 10, 1, 0, 0, 706, 707, 5, 65, 0, 0, 707, 709, 5, 102, 0, 0, 708, 705, 1, 0, 0, 0, 709, 712, 1, 0, 0, 0, 710, 708, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 61, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 713, 715, 3, 64, 32, 0, 714, 713, 1, 0, 0, 0, 714, 715, 1, 0, 0, 0, 715, 719, 1, 0, 0, 0, 716, 718, 3, 68, 34, 0, 717, 716, 1, 0, 0, 0, 718, 721, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, 725, 1, 0, 0, 0, 721, 719, 1, 0, 0, 0, 722, 724, 3, 78, 39, 0, 723, 722, 1, 0, 0, 0, 724, 727, 1, 0, 0, 0, 725, 723, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 728, 1, 0, 0, 0, 727, 725, 1, 0, 0, 0, 728, 729, 5, 0, 0, 1, 729, 63, 1, 0, 0, 0, 730, 732, 3, 66, 33, 0, 731, 730, 1, 0, 0, 0, 732, 735, 1, 0, 0, 0, 733, 731, 1, 0, 0, 0, 733, 734, 1, 0, 0, 0, 734, 736, 1, 0, 0, 0, 735, 733, 1, 0, 0, 0, 736, 737, 5, 32, 0, 0, 737, 738, 3, 50, 25, 0, 738, 739, 5, 63, 0, 0, 739, 65, 1, 0, 0, 0, 740, 741, 3, 228, 114, 0, 741, 67, 1, 0, 0, 0, 742, 747, 3, 70, 35, 0, 743, 747, 3, 72, 36, 0, 744, 747, 3, 74, 37, 0, 745, 747, 3, 76, 38, 0, 746, 742, 1, 0, 0, 0, 746, 743, 1, 0, 0, 0, 746, 744, 1, 0, 0, 0, 746, 745, 1, 0, 0, 0, 747, 69, 1, 0, 0, 0, 748, 749, 5, 25, 0, 0, 749, 750, 3, 52, 26, 0, 750, 751, 5, 63, 0, 0, 751, 71, 1, 0, 0, 0, 752, 753, 5, 25, 0, 0, 753, 754, 3, 54, 27, 0, 754, 755, 5, 65, 0, 0, 755, 756, 5, 83, 0, 0, 756, 757, 5, 63, 0, 0, 757, 73, 1, 0, 0, 0, 758, 759, 5, 25, 0, 0, 759, 760, 5, 38, 0, 0, 760, 761, 3, 52, 26, 0, 761, 762, 5, 65, 0, 0, 762, 763, 5, 102, 0, 0, 763, 764, 5, 63, 0, 0, 764, 75, 1, 0, 0, 0, 765, 766, 5, 25, 0, 0, 766, 767, 5, 38, 0, 0, 767, 768, 3, 52, 26, 0, 768, 769, 5, 65, 0, 0, 769, 770, 5, 83, 0, 0, 770, 771, 5, 63, 0, 0, 771, 77, 1, 0, 0, 0, 772, 776, 3, 80, 40, 0, 773, 776, 3, 196, 98, 0, 774, 776, 5, 63, 0, 0, 775, 772, 1, 0, 0, 0, 775, 773, 1, 0, 0, 0, 775, 774, 1, 0, 0, 0, 776, 79, 1, 0, 0, 0, 777, 780, 3, 82, 41, 0, 778, 780, 3, 184, 92, 0, 779, 777, 1, 0, 0, 0, 779, 778, 1, 0, 0, 0, 780, 81, 1, 0, 0, 0, 781, 783, 3, 84, 42, 0, 782, 781, 1, 0, 0, 0, 783, 786, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 787, 1, 0, 0, 0, 786, 784, 1, 0, 0, 0, 787, 788, 5, 9, 0, 0, 788, 790, 5, 102, 0, 0, 789, 791, 3, 86, 43, 0, 790, 789, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 793, 1, 0, 0, 0, 792, 794, 3, 90, 45, 0, 793, 792, 1, 0, 0, 0, 793, 794, 1, 0, 0, 0, 794, 796, 1, 0, 0, 0, 795, 797, 3, 92, 46, 0, 796, 795, 1, 0, 0, 0, 796, 797, 1, 0, 0, 0, 797, 798, 1, 0, 0, 0, 798, 799, 3, 96, 48, 0, 799, 83, 1, 0, 0, 0, 800, 809, 3, 228, 114, 0, 801, 809, 5, 35, 0, 0, 802, 809, 5, 34, 0, 0, 803, 809, 5, 33, 0, 0, 804, 809, 5, 1, 0, 0, 805, 809, 5, 38, 0, 0, 806, 809, 5, 18, 0, 0, 807, 809, 5, 39, 0, 0, 808, 800, 1, 0, 0, 0, 808, 801, 1, 0, 0, 0, 808, 802, 1, 0, 0, 0, 808, 803, 1, 0, 0, 0, 808, 804, 1, 0, 0, 0, 808, 805, 1, 0, 0, 0, 808, 806, 1, 0, 0, 0, 808, 807, 1, 0, 0, 0, 809, 85, 1, 0, 0, 0, 810, 811, 5, 68, 0, 0, 811, 812, 3, 88, 44, 0, 812, 813, 5, 67, 0, 0, 813, 87, 1, 0, 0, 0, 814, 819, 3, 32, 16, 0, 815, 816, 5, 64, 0, 0, 816, 818, 3, 32, 16, 0, 817, 815, 1, 0, 0, 0, 818, 821, 1, 0, 0, 0, 819, 817, 1, 0, 0, 0, 819, 820, 1, 0, 0, 0, 820, 89, 1, 0, 0, 0, 821, 819, 1, 0, 0, 0, 822, 823, 5, 17, 0, 0, 823, 824, 3, 14, 7, 0, 824, 91, 1, 0, 0, 0, 825, 826, 5, 24, 0, 0, 826, 827, 3, 94, 47, 0, 827, 93, 1, 0, 0, 0, 828, 833, 3, 20, 10, 0, 829, 830, 5, 64, 0, 0, 830, 832, 3, 20, 10, 0, 831, 829, 1, 0, 0, 0, 832, 835, 1, 0, 0, 0, 833, 831, 1, 0, 0, 0, 833, 834, 1, 0, 0, 0, 834, 95, 1, 0, 0, 0, 835, 833, 1, 0, 0, 0, 836, 840, 5, 59, 0, 0, 837, 839, 3, 98, 49, 0, 838, 837, 1, 0, 0, 0, 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 843, 1, 0, 0, 0, 842, 840, 1, 0, 0, 0, 843, 844, 5, 60, 0, 0, 844, 97, 1, 0, 0, 0, 845, 850, 3, 100, 50, 0, 846, 850, 3, 168, 84, 0, 847, 850, 3, 170, 85, 0, 848, 850, 3, 172, 86, 0, 849, 845, 1, 0, 0, 0, 849, 846, 1, 0, 0, 0, 849, 847, 1, 0, 0, 0, 849, 848, 1, 0, 0, 0, 850, 99, 1, 0, 0, 0, 851, 857, 3, 102, 51, 0, 852, 857, 3, 138, 69, 0, 853, 857, 3, 80, 40, 0, 854, 857, 3, 196, 98, 0, 855, 857, 5, 63, 0, 0, 856, 851, 1, 0, 0, 0, 856, 852, 1, 0, 0, 0, 856, 853, 1, 0, 0, 0, 856, 854, 1, 0, 0, 0, 856, 855, 1, 0, 0, 0, 857, 101, 1, 0, 0, 0, 858, 860, 3, 104, 52, 0, 859, 858, 1, 0, 0, 0, 860, 863, 1, 0, 0, 0, 861, 859, 1, 0, 0, 0, 861, 862, 1, 0, 0, 0, 862, 864, 1, 0, 0, 0, 863, 861, 1, 0, 0, 0, 864, 865, 3, 114, 57, 0, 865, 866, 3, 106, 53, 0, 866, 867, 5, 63, 0, 0, 867, 103, 1, 0, 0, 0, 868, 877, 3, 228, 114, 0, 869, 877, 5, 35, 0, 0, 870, 877, 5, 34, 0, 0, 871, 877, 5, 33, 0, 0, 872, 877, 5, 38, 0, 0, 873, 877, 5, 18, 0, 0, 874, 877, 5, 46, 0, 0, 875, 877, 5, 49, 0, 0, 876, 868, 1, 0, 0, 0, 876, 869, 1, 0, 0, 0, 876, 870, 1, 0, 0, 0, 876, 871, 1, 0, 0, 0, 876, 872, 1, 0, 0, 0, 876, 873, 1, 0, 0, 0, 876, 874, 1, 0, 0, 0, 876, 875, 1, 0, 0, 0, 877, 105, 1, 0, 0, 0, 878, 883, 3, 108, 54, 0, 879, 880, 5, 64, 0, 0, 880, 882, 3, 108, 54, 0, 881, 879, 1, 0, 0, 0, 882, 885, 1, 0, 0, 0, 883, 881, 1, 0, 0, 0, 883, 884, 1, 0, 0, 0, 884, 107, 1, 0, 0, 0, 885, 883, 1, 0, 0, 0, 886, 889, 3, 110, 55, 0, 887, 888, 5, 66, 0, 0, 888, 890, 3, 112, 56, 0, 889, 887, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 109, 1, 0, 0, 0, 891, 893, 5, 102, 0, 0, 892, 894, 3, 30, 15, 0, 893, 892, 1, 0, 0, 0, 893, 894, 1, 0, 0, 0, 894, 111, 1, 0, 0, 0, 895, 898, 3, 412, 206, 0, 896, 898, 3, 246, 123, 0, 897, 895, 1, 0, 0, 0, 897, 896, 1, 0, 0, 0, 898, 113, 1, 0, 0, 0, 899, 902, 3, 116, 58, 0, 900, 902, 3, 118, 59, 0, 901, 899, 1, 0, 0, 0, 901, 900, 1, 0, 0, 0, 902, 115, 1, 0, 0, 0, 903, 906, 3, 4, 2, 0, 904, 906, 5, 3, 0, 0, 905, 903, 1, 0, 0, 0, 905, 904, 1, 0, 0, 0, 906, 117, 1, 0, 0, 0, 907, 911, 3, 120, 60, 0, 908, 911, 3, 134, 67, 0, 909, 911, 3, 136, 68, 0, 910, 907, 1, 0, 0, 0, 910, 908, 1, 0, 0, 0, 910, 909, 1, 0, 0, 0, 911, 119, 1, 0, 0, 0, 912, 915, 3, 126, 63, 0, 913, 915, 3, 132, 66, 0, 914, 912, 1, 0, 0, 0, 914, 913, 1, 0, 0, 0, 915, 920, 1, 0, 0, 0, 916, 919, 3, 124, 62, 0, 917, 919, 3, 130, 65, 0, 918, 916, 1, 0, 0, 0, 918, 917, 1, 0, 0, 0, 919, 922, 1, 0, 0, 0, 920, 918, 1, 0, 0, 0, 920, 921, 1, 0, 0, 0, 921, 121, 1, 0, 0, 0, 922, 920, 1, 0, 0, 0, 923, 925, 5, 102, 0, 0, 924, 926, 3, 40, 20, 0, 925, 924, 1, 0, 0, 0, 925, 926, 1, 0, 0, 0, 926, 940, 1, 0, 0, 0, 927, 928, 3, 120, 60, 0, 928, 932, 5, 65, 0, 0, 929, 931, 3, 228, 114, 0, 930, 929, 1, 0, 0, 0, 931, 934, 1, 0, 0, 0, 932, 930, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 935, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 935, 937, 5, 102, 0, 0, 936, 938, 3, 40, 20, 0, 937, 936, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 940, 1, 0, 0, 0, 939, 923, 1, 0, 0, 0, 939, 927, 1, 0, 0, 0, 940, 123, 1, 0, 0, 0, 941, 945, 5, 65, 0, 0, 942, 944, 3, 228, 114, 0, 943, 942, 1, 0, 0, 0, 944, 947, 1, 0, 0, 0, 945, 943, 1, 0, 0, 0, 945, 946, 1, 0, 0, 0, 946, 948, 1, 0, 0, 0, 947, 945, 1, 0, 0, 0, 948, 950, 5, 102, 0, 0, 949, 951, 3, 40, 20, 0, 950, 949, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 125, 1, 0, 0, 0, 952, 954, 5, 102, 0, 0, 953, 955, 3, 40, 20, 0, 954, 953, 1, 0, 0, 0, 954, 955, 1, 0, 0, 0, 955, 127, 1, 0, 0, 0, 956, 957, 3, 122, 61, 0, 957, 129, 1, 0, 0, 0, 958, 959, 3, 124, 62, 0, 959, 131, 1, 0, 0, 0, 960, 961, 3, 126, 63, 0, 961, 133, 1, 0, 0, 0, 962, 963, 5, 102, 0, 0, 963, 135, 1, 0, 0, 0, 964, 965, 3, 116, 58, 0, 965, 966, 3, 30, 15, 0, 966, 974, 1, 0, 0, 0, 967, 968, 3, 120, 60, 0, 968, 969, 3, 30, 15, 0, 969, 974, 1, 0, 0, 0, 970, 971, 3, 134, 67, 0, 971, 972, 3, 30, 15, 0, 972, 974, 1, 0, 0, 0, 973, 964, 1, 0, 0, 0, 973, 967, 1, 0, 0, 0, 973, 970, 1, 0, 0, 0, 974, 137, 1, 0, 0, 0, 975, 977, 3, 140, 70, 0, 976, 975, 1, 0, 0, 0, 977, 980, 1, 0, 0, 0, 978, 976, 1, 0, 0, 0, 978, 979, 1, 0, 0, 0, 979, 981, 1, 0, 0, 0, 980, 978, 1, 0, 0, 0, 981, 982, 3, 142, 71, 0, 982, 983, 3, 166, 83, 0, 983, 139, 1, 0, 0, 0, 984, 995, 3, 228, 114, 0, 985, 995, 5, 35, 0, 0, 986, 995, 5, 34, 0, 0, 987, 995, 5, 33, 0, 0, 988, 995, 5, 1, 0, 0, 989, 995, 5, 38, 0, 0, 990, 995, 5, 18, 0, 0, 991, 995, 5, 42, 0, 0, 992, 995, 5, 30, 0, 0, 993, 995, 5, 39, 0, 0, 994, 984, 1, 0, 0, 0, 994, 985, 1, 0, 0, 0, 994, 986, 1, 0, 0, 0, 994, 987, 1, 0, 0, 0, 994, 988, 1, 0, 0, 0, 994, 989, 1, 0, 0, 0, 994, 990, 1, 0, 0, 0, 994, 991, 1, 0, 0, 0, 994, 992, 1, 0, 0, 0, 994, 993, 1, 0, 0, 0, 995, 141, 1, 0, 0, 0, 996, 997, 3, 144, 72, 0, 997, 999, 3, 146, 73, 0, 998, 1000, 3, 160, 80, 0, 999, 998, 1, 0, 0, 0, 999, 1000, 1, 0, 0, 0, 1000, 1014, 1, 0, 0, 0, 1001, 1005, 3, 86, 43, 0, 1002, 1004, 3, 228, 114, 0, 1003, 1002, 1, 0, 0, 0, 1004, 1007, 1, 0, 0, 0, 1005, 1003, 1, 0, 0, 0, 1005, 1006, 1, 0, 0, 0, 1006, 1008, 1, 0, 0, 0, 1007, 1005, 1, 0, 0, 0, 1008, 1009, 3, 144, 72, 0, 1009, 1011, 3, 146, 73, 0, 1010, 1012, 3, 160, 80, 0, 1011, 1010, 1, 0, 0, 0, 1011, 1012, 1, 0, 0, 0, 1012, 1014, 1, 0, 0, 0, 1013, 996, 1, 0, 0, 0, 1013, 1001, 1, 0, 0, 0, 1014, 143, 1, 0, 0, 0, 1015, 1018, 3, 114, 57, 0, 1016, 1018, 5, 48, 0, 0, 1017, 1015, 1, 0, 0, 0, 1017, 1016, 1, 0, 0, 0, 1018, 145, 1, 0, 0, 0, 1019, 1020, 5, 102, 0, 0, 1020, 1022, 5, 57, 0, 0, 1021, 1023, 3, 148, 74, 0, 1022, 1021, 1, 0, 0, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1024, 1, 0, 0, 0, 1024, 1026, 5, 58, 0, 0, 1025, 1027, 3, 30, 15, 0, 1026, 1025, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 147, 1, 0, 0, 0, 1028, 1035, 3, 158, 79, 0, 1029, 1030, 3, 150, 75, 0, 1030, 1031, 5, 64, 0, 0, 1031, 1032, 3, 156, 78, 0, 1032, 1035, 1, 0, 0, 0, 1033, 1035, 3, 156, 78, 0, 1034, 1028, 1, 0, 0, 0, 1034, 1029, 1, 0, 0, 0, 1034, 1033, 1, 0, 0, 0, 1035, 149, 1, 0, 0, 0, 1036, 1041, 3, 152, 76, 0, 1037, 1038, 5, 64, 0, 0, 1038, 1040, 3, 152, 76, 0, 1039, 1037, 1, 0, 0, 0, 1040, 1043, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 1053, 1, 0, 0, 0, 1043, 1041, 1, 0, 0, 0, 1044, 1049, 3, 158, 79, 0, 1045, 1046, 5, 64, 0, 0, 1046, 1048, 3, 152, 76, 0, 1047, 1045, 1, 0, 0, 0, 1048, 1051, 1, 0, 0, 0, 1049, 1047, 1, 0, 0, 0, 1049, 1050, 1, 0, 0, 0, 1050, 1053, 1, 0, 0, 0, 1051, 1049, 1, 0, 0, 0, 1052, 1036, 1, 0, 0, 0, 1052, 1044, 1, 0, 0, 0, 1053, 151, 1, 0, 0, 0, 1054, 1056, 3, 154, 77, 0, 1055, 1054, 1, 0, 0, 0, 1056, 1059, 1, 0, 0, 0, 1057, 1055, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1060, 1, 0, 0, 0, 1059, 1057, 1, 0, 0, 0, 1060, 1061, 3, 114, 57, 0, 1061, 1062, 3, 110, 55, 0, 1062, 153, 1, 0, 0, 0, 1063, 1066, 3, 228, 114, 0, 1064, 1066, 5, 18, 0, 0, 1065, 1063, 1, 0, 0, 0, 1065, 1064, 1, 0, 0, 0, 1066, 155, 1, 0, 0, 0, 1067, 1069, 3, 154, 77, 0, 1068, 1067, 1, 0, 0, 0, 1069, 1072, 1, 0, 0, 0, 1070, 1068, 1, 0, 0, 0, 1070, 1071, 1, 0, 0, 0, 1071, 1073, 1, 0, 0, 0, 1072, 1070, 1, 0, 0, 0, 1073, 1077, 3, 114, 57, 0, 1074, 1076, 3, 228, 114, 0, 1075, 1074, 1, 0, 0, 0, 1076, 1079, 1, 0, 0, 0, 1077, 1075, 1, 0, 0, 0, 1077, 1078, 1, 0, 0, 0, 1078, 1080, 1, 0, 0, 0, 1079, 1077, 1, 0, 0, 0, 1080, 1081, 5, 104, 0, 0, 1081, 1082, 3, 110, 55, 0, 1082, 1085, 1, 0, 0, 0, 1083, 1085, 3, 152, 76, 0, 1084, 1070, 1, 0, 0, 0, 1084, 1083, 1, 0, 0, 0, 1085, 157, 1, 0, 0, 0, 1086, 1088, 3, 228, 114, 0, 1087, 1086, 1, 0, 0, 0, 1088, 1091, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1089, 1090, 1, 0, 0, 0, 1090, 1092, 1, 0, 0, 0, 1091, 1089, 1, 0, 0, 0, 1092, 1095, 3, 114, 57, 0, 1093, 1094, 5, 102, 0, 0, 1094, 1096, 5, 65, 0, 0, 1095, 1093, 1, 0, 0, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1098, 5, 43, 0, 0, 1098, 159, 1, 0, 0, 0, 1099, 1100, 5, 45, 0, 0, 1100, 1101, 3, 162, 81, 0, 1101, 161, 1, 0, 0, 0, 1102, 1107, 3, 164, 82, 0, 1103, 1104, 5, 64, 0, 0, 1104, 1106, 3, 164, 82, 0, 1105, 1103, 1, 0, 0, 0, 1106, 1109, 1, 0, 0, 0, 1107, 1105, 1, 0, 0, 0, 1107, 1108, 1, 0, 0, 0, 1108, 163, 1, 0, 0, 0, 1109, 1107, 1, 0, 0, 0, 1110, 1113, 3, 14, 7, 0, 1111, 1113, 3, 26, 13, 0, 1112, 1110, 1, 0, 0, 0, 1112, 1111, 1, 0, 0, 0, 1113, 165, 1, 0, 0, 0, 1114, 1117, 3, 250, 125, 0, 1115, 1117, 5, 63, 0, 0, 1116, 1114, 1, 0, 0, 0, 1116, 1115, 1, 0, 0, 0, 1117, 167, 1, 0, 0, 0, 1118, 1119, 3, 250, 125, 0, 1119, 169, 1, 0, 0, 0, 1120, 1121, 5, 38, 0, 0, 1121, 1122, 3, 250, 125, 0, 1122, 171, 1, 0, 0, 0, 1123, 1125, 3, 174, 87, 0, 1124, 1123, 1, 0, 0, 0, 1125, 1128, 1, 0, 0, 0, 1126, 1124, 1, 0, 0, 0, 1126, 1127, 1, 0, 0, 0, 1127, 1129, 1, 0, 0, 0, 1128, 1126, 1, 0, 0, 0, 1129, 1131, 3, 176, 88, 0, 1130, 1132, 3, 160, 80, 0, 1131, 1130, 1, 0, 0, 0, 1131, 1132, 1, 0, 0, 0, 1132, 1133, 1, 0, 0, 0, 1133, 1134, 3, 180, 90, 0, 1134, 173, 1, 0, 0, 0, 1135, 1140, 3, 228, 114, 0, 1136, 1140, 5, 35, 0, 0, 1137, 1140, 5, 34, 0, 0, 1138, 1140, 5, 33, 0, 0, 1139, 1135, 1, 0, 0, 0, 1139, 1136, 1, 0, 0, 0, 1139, 1137, 1, 0, 0, 0, 1139, 1138, 1, 0, 0, 0, 1140, 175, 1, 0, 0, 0, 1141, 1143, 3, 86, 43, 0, 1142, 1141, 1, 0, 0, 0, 1142, 1143, 1, 0, 0, 0, 1143, 1144, 1, 0, 0, 0, 1144, 1145, 3, 178, 89, 0, 1145, 1147, 5, 57, 0, 0, 1146, 1148, 3, 148, 74, 0, 1147, 1146, 1, 0, 0, 0, 1147, 1148, 1, 0, 0, 0, 1148, 1149, 1, 0, 0, 0, 1149, 1150, 5, 58, 0, 0, 1150, 177, 1, 0, 0, 0, 1151, 1152, 5, 102, 0, 0, 1152, 179, 1, 0, 0, 0, 1153, 1155, 5, 59, 0, 0, 1154, 1156, 3, 182, 91, 0, 1155, 1154, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1158, 1, 0, 0, 0, 1157, 1159, 3, 252, 126, 0, 1158, 1157, 1, 0, 0, 0, 1158, 1159, 1, 0, 0, 0, 1159, 1160, 1, 0, 0, 0, 1160, 1161, 5, 60, 0, 0, 1161, 181, 1, 0, 0, 0, 1162, 1164, 3, 40, 20, 0, 1163, 1162, 1, 0, 0, 0, 1163, 1164, 1, 0, 0, 0, 1164, 1165, 1, 0, 0, 0, 1165, 1166, 5, 43, 0, 0, 1166, 1168, 5, 57, 0, 0, 1167, 1169, 3, 396, 198, 0, 1168, 1167, 1, 0, 0, 0, 1168, 1169, 1, 0, 0, 0, 1169, 1170, 1, 0, 0, 0, 1170, 1171, 5, 58, 0, 0, 1171, 1209, 5, 63, 0, 0, 1172, 1174, 3, 40, 20, 0, 1173, 1172, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 1, 0, 0, 0, 1175, 1176, 5, 40, 0, 0, 1176, 1178, 5, 57, 0, 0, 1177, 1179, 3, 396, 198, 0, 1178, 1177, 1, 0, 0, 0, 1178, 1179, 1, 0, 0, 0, 1179, 1180, 1, 0, 0, 0, 1180, 1181, 5, 58, 0, 0, 1181, 1209, 5, 63, 0, 0, 1182, 1183, 3, 56, 28, 0, 1183, 1185, 5, 65, 0, 0, 1184, 1186, 3, 40, 20, 0, 1185, 1184, 1, 0, 0, 0, 1185, 1186, 1, 0, 0, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1188, 5, 40, 0, 0, 1188, 1190, 5, 57, 0, 0, 1189, 1191, 3, 396, 198, 0, 1190, 1189, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1193, 5, 58, 0, 0, 1193, 1194, 5, 63, 0, 0, 1194, 1209, 1, 0, 0, 0, 1195, 1196, 3, 350, 175, 0, 1196, 1198, 5, 65, 0, 0, 1197, 1199, 3, 40, 20, 0, 1198, 1197, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 1200, 1, 0, 0, 0, 1200, 1201, 5, 40, 0, 0, 1201, 1203, 5, 57, 0, 0, 1202, 1204, 3, 396, 198, 0, 1203, 1202, 1, 0, 0, 0, 1203, 1204, 1, 0, 0, 0, 1204, 1205, 1, 0, 0, 0, 1205, 1206, 5, 58, 0, 0, 1206, 1207, 5, 63, 0, 0, 1207, 1209, 1, 0, 0, 0, 1208, 1163, 1, 0, 0, 0, 1208, 1173, 1, 0, 0, 0, 1208, 1182, 1, 0, 0, 0, 1208, 1195, 1, 0, 0, 0, 1209, 183, 1, 0, 0, 0, 1210, 1212, 3, 84, 42, 0, 1211, 1210, 1, 0, 0, 0, 1212, 1215, 1, 0, 0, 0, 1213, 1211, 1, 0, 0, 0, 1213, 1214, 1, 0, 0, 0, 1214, 1216, 1, 0, 0, 0, 1215, 1213, 1, 0, 0, 0, 1216, 1217, 5, 16, 0, 0, 1217, 1219, 5, 102, 0, 0, 1218, 1220, 3, 92, 46, 0, 1219, 1218, 1, 0, 0, 0, 1219, 1220, 1, 0, 0, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1222, 3, 186, 93, 0, 1222, 185, 1, 0, 0, 0, 1223, 1225, 5, 59, 0, 0, 1224, 1226, 3, 188, 94, 0, 1225, 1224, 1, 0, 0, 0, 1225, 1226, 1, 0, 0, 0, 1226, 1228, 1, 0, 0, 0, 1227, 1229, 5, 64, 0, 0, 1228, 1227, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1231, 1, 0, 0, 0, 1230, 1232, 3, 194, 97, 0, 1231, 1230, 1, 0, 0, 0, 1231, 1232, 1, 0, 0, 0, 1232, 1233, 1, 0, 0, 0, 1233, 1234, 5, 60, 0, 0, 1234, 187, 1, 0, 0, 0, 1235, 1240, 3, 190, 95, 0, 1236, 1237, 5, 64, 0, 0, 1237, 1239, 3, 190, 95, 0, 1238, 1236, 1, 0, 0, 0, 1239, 1242, 1, 0, 0, 0, 1240, 1238, 1, 0, 0, 0, 1240, 1241, 1, 0, 0, 0, 1241, 189, 1, 0, 0, 0, 1242, 1240, 1, 0, 0, 0, 1243, 1245, 3, 192, 96, 0, 1244, 1243, 1, 0, 0, 0, 1245, 1248, 1, 0, 0, 0, 1246, 1244, 1, 0, 0, 0, 1246, 1247, 1, 0, 0, 0, 1247, 1249, 1, 0, 0, 0, 1248, 1246, 1, 0, 0, 0, 1249, 1255, 5, 102, 0, 0, 1250, 1252, 5, 57, 0, 0, 1251, 1253, 3, 396, 198, 0, 1252, 1251, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1254, 1, 0, 0, 0, 1254, 1256, 5, 58, 0, 0, 1255, 1250, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 1258, 1, 0, 0, 0, 1257, 1259, 3, 96, 48, 0, 1258, 1257, 1, 0, 0, 0, 1258, 1259, 1, 0, 0, 0, 1259, 191, 1, 0, 0, 0, 1260, 1261, 3, 228, 114, 0, 1261, 193, 1, 0, 0, 0, 1262, 1266, 5, 63, 0, 0, 1263, 1265, 3, 98, 49, 0, 1264, 1263, 1, 0, 0, 0, 1265, 1268, 1, 0, 0, 0, 1266, 1264, 1, 0, 0, 0, 1266, 1267, 1, 0, 0, 0, 1267, 195, 1, 0, 0, 0, 1268, 1266, 1, 0, 0, 0, 1269, 1272, 3, 198, 99, 0, 1270, 1272, 3, 216, 108, 0, 1271, 1269, 1, 0, 0, 0, 1271, 1270, 1, 0, 0, 0, 1272, 197, 1, 0, 0, 0, 1273, 1275, 3, 200, 100, 0, 1274, 1273, 1, 0, 0, 0, 1275, 1278, 1, 0, 0, 0, 1276, 1274, 1, 0, 0, 0, 1276, 1277, 1, 0, 0, 0, 1277, 1279, 1, 0, 0, 0, 1278, 1276, 1, 0, 0, 0, 1279, 1280, 5, 28, 0, 0, 1280, 1282, 5, 102, 0, 0, 1281, 1283, 3, 86, 43, 0, 1282, 1281, 1, 0, 0, 0, 1282, 1283, 1, 0, 0, 0, 1283, 1285, 1, 0, 0, 0, 1284, 1286, 3, 202, 101, 0, 1285, 1284, 1, 0, 0, 0, 1285, 1286, 1, 0, 0, 0, 1286, 1287, 1, 0, 0, 0, 1287, 1288, 3, 204, 102, 0, 1288, 199, 1, 0, 0, 0, 1289, 1297, 3, 228, 114, 0, 1290, 1297, 5, 35, 0, 0, 1291, 1297, 5, 34, 0, 0, 1292, 1297, 5, 33, 0, 0, 1293, 1297, 5, 1, 0, 0, 1294, 1297, 5, 38, 0, 0, 1295, 1297, 5, 39, 0, 0, 1296, 1289, 1, 0, 0, 0, 1296, 1290, 1, 0, 0, 0, 1296, 1291, 1, 0, 0, 0, 1296, 1292, 1, 0, 0, 0, 1296, 1293, 1, 0, 0, 0, 1296, 1294, 1, 0, 0, 0, 1296, 1295, 1, 0, 0, 0, 1297, 201, 1, 0, 0, 0, 1298, 1299, 5, 17, 0, 0, 1299, 1300, 3, 94, 47, 0, 1300, 203, 1, 0, 0, 0, 1301, 1305, 5, 59, 0, 0, 1302, 1304, 3, 206, 103, 0, 1303, 1302, 1, 0, 0, 0, 1304, 1307, 1, 0, 0, 0, 1305, 1303, 1, 0, 0, 0, 1305, 1306, 1, 0, 0, 0, 1306, 1308, 1, 0, 0, 0, 1307, 1305, 1, 0, 0, 0, 1308, 1309, 5, 60, 0, 0, 1309, 205, 1, 0, 0, 0, 1310, 1316, 3, 208, 104, 0, 1311, 1316, 3, 212, 106, 0, 1312, 1316, 3, 80, 40, 0, 1313, 1316, 3, 196, 98, 0, 1314, 1316, 5, 63, 0, 0, 1315, 1310, 1, 0, 0, 0, 1315, 1311, 1, 0, 0, 0, 1315, 1312, 1, 0, 0, 0, 1315, 1313, 1, 0, 0, 0, 1315, 1314, 1, 0, 0, 0, 1316, 207, 1, 0, 0, 0, 1317, 1319, 3, 210, 105, 0, 1318, 1317, 1, 0, 0, 0, 1319, 1322, 1, 0, 0, 0, 1320, 1318, 1, 0, 0, 0, 1320, 1321, 1, 0, 0, 0, 1321, 1323, 1, 0, 0, 0, 1322, 1320, 1, 0, 0, 0, 1323, 1324, 3, 114, 57, 0, 1324, 1325, 3, 106, 53, 0, 1325, 1326, 5, 63, 0, 0, 1326, 209, 1, 0, 0, 0, 1327, 1332, 3, 228, 114, 0, 1328, 1332, 5, 35, 0, 0, 1329, 1332, 5, 38, 0, 0, 1330, 1332, 5, 18, 0, 0, 1331, 1327, 1, 0, 0, 0, 1331, 1328, 1, 0, 0, 0, 1331, 1329, 1, 0, 0, 0, 1331, 1330, 1, 0, 0, 0, 1332, 211, 1, 0, 0, 0, 1333, 1335, 3, 214, 107, 0, 1334, 1333, 1, 0, 0, 0, 1335, 1338, 1, 0, 0, 0, 1336, 1334, 1, 0, 0, 0, 1336, 1337, 1, 0, 0, 0, 1337, 1339, 1, 0, 0, 0, 1338, 1336, 1, 0, 0, 0, 1339, 1340, 3, 142, 71, 0, 1340, 1341, 3, 166, 83, 0, 1341, 213, 1, 0, 0, 0, 1342, 1349, 3, 228, 114, 0, 1343, 1349, 5, 35, 0, 0, 1344, 1349, 5, 1, 0, 0, 1345, 1349, 5, 12, 0, 0, 1346, 1349, 5, 38, 0, 0, 1347, 1349, 5, 39, 0, 0, 1348, 1342, 1, 0, 0, 0, 1348, 1343, 1, 0, 0, 0, 1348, 1344, 1, 0, 0, 0, 1348, 1345, 1, 0, 0, 0, 1348, 1346, 1, 0, 0, 0, 1348, 1347, 1, 0, 0, 0, 1349, 215, 1, 0, 0, 0, 1350, 1352, 3, 200, 100, 0, 1351, 1350, 1, 0, 0, 0, 1352, 1355, 1, 0, 0, 0, 1353, 1351, 1, 0, 0, 0, 1353, 1354, 1, 0, 0, 0, 1354, 1356, 1, 0, 0, 0, 1355, 1353, 1, 0, 0, 0, 1356, 1357, 5, 103, 0, 0, 1357, 1358, 5, 28, 0, 0, 1358, 1359, 5, 102, 0, 0, 1359, 1360, 3, 218, 109, 0, 1360, 217, 1, 0, 0, 0, 1361, 1365, 5, 59, 0, 0, 1362, 1364, 3, 220, 110, 0, 1363, 1362, 1, 0, 0, 0, 1364, 1367, 1, 0, 0, 0, 1365, 1363, 1, 0, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1368, 1, 0, 0, 0, 1367, 1365, 1, 0, 0, 0, 1368, 1369, 5, 60, 0, 0, 1369, 219, 1, 0, 0, 0, 1370, 1376, 3, 222, 111, 0, 1371, 1376, 3, 208, 104, 0, 1372, 1376, 3, 80, 40, 0, 1373, 1376, 3, 196, 98, 0, 1374, 1376, 5, 63, 0, 0, 1375, 1370, 1, 0, 0, 0, 1375, 1371, 1, 0, 0, 0, 1375, 1372, 1, 0, 0, 0, 1375, 1373, 1, 0, 0, 0, 1375, 1374, 1, 0, 0, 0, 1376, 221, 1, 0, 0, 0, 1377, 1379, 3, 224, 112, 0, 1378, 1377, 1, 0, 0, 0, 1379, 1382, 1, 0, 0, 0, 1380, 1378, 1, 0, 0, 0, 1380, 1381, 1, 0, 0, 0, 1381, 1383, 1, 0, 0, 0, 1382, 1380, 1, 0, 0, 0, 1383, 1384, 3, 114, 57, 0, 1384, 1385, 5, 102, 0, 0, 1385, 1386, 5, 57, 0, 0, 1386, 1388, 5, 58, 0, 0, 1387, 1389, 3, 30, 15, 0, 1388, 1387, 1, 0, 0, 0, 1388, 1389, 1, 0, 0, 0, 1389, 1391, 1, 0, 0, 0, 1390, 1392, 3, 226, 113, 0, 1391, 1390, 1, 0, 0, 0, 1391, 1392, 1, 0, 0, 0, 1392, 1393, 1, 0, 0, 0, 1393, 1394, 5, 63, 0, 0, 1394, 223, 1, 0, 0, 0, 1395, 1399, 3, 228, 114, 0, 1396, 1399, 5, 35, 0, 0, 1397, 1399, 5, 1, 0, 0, 1398, 1395, 1, 0, 0, 0, 1398, 1396, 1, 0, 0, 0, 1398, 1397, 1, 0, 0, 0, 1399, 225, 1, 0, 0, 0, 1400, 1401, 5, 12, 0, 0, 1401, 1402, 3, 236, 118, 0, 1402, 227, 1, 0, 0, 0, 1403, 1407, 3, 230, 115, 0, 1404, 1407, 3, 242, 121, 0, 1405, 1407, 3, 244, 122, 0, 1406, 1403, 1, 0, 0, 0, 1406, 1404, 1, 0, 0, 0, 1406, 1405, 1, 0, 0, 0, 1407, 229, 1, 0, 0, 0, 1408, 1409, 5, 103, 0, 0, 1409, 1410, 3, 52, 26, 0, 1410, 1412, 5, 57, 0, 0, 1411, 1413, 3, 232, 116, 0, 1412, 1411, 1, 0, 0, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1414, 1, 0, 0, 0, 1414, 1415, 5, 58, 0, 0, 1415, 231, 1, 0, 0, 0, 1416, 1421, 3, 234, 117, 0, 1417, 1418, 5, 64, 0, 0, 1418, 1420, 3, 234, 117, 0, 1419, 1417, 1, 0, 0, 0, 1420, 1423, 1, 0, 0, 0, 1421, 1419, 1, 0, 0, 0, 1421, 1422, 1, 0, 0, 0, 1422, 233, 1, 0, 0, 0, 1423, 1421, 1, 0, 0, 0, 1424, 1425, 5, 102, 0, 0, 1425, 1426, 5, 66, 0, 0, 1426, 1427, 3, 236, 118, 0, 1427, 235, 1, 0, 0, 0, 1428, 1432, 3, 430, 215, 0, 1429, 1432, 3, 238, 119, 0, 1430, 1432, 3, 228, 114, 0, 1431, 1428, 1, 0, 0, 0, 1431, 1429, 1, 0, 0, 0, 1431, 1430, 1, 0, 0, 0, 1432, 237, 1, 0, 0, 0, 1433, 1435, 5, 59, 0, 0, 1434, 1436, 3, 240, 120, 0, 1435, 1434, 1, 0, 0, 0, 1435, 1436, 1, 0, 0, 0, 1436, 1438, 1, 0, 0, 0, 1437, 1439, 5, 64, 0, 0, 1438, 1437, 1, 0, 0, 0, 1438, 1439, 1, 0, 0, 0, 1439, 1440, 1, 0, 0, 0, 1440, 1441, 5, 60, 0, 0, 1441, 239, 1, 0, 0, 0, 1442, 1447, 3, 236, 118, 0, 1443, 1444, 5, 64, 0, 0, 1444, 1446, 3, 236, 118, 0, 1445, 1443, 1, 0, 0, 0, 1446, 1449, 1, 0, 0, 0, 1447, 1445, 1, 0, 0, 0, 1447, 1448, 1, 0, 0, 0, 1448, 241, 1, 0, 0, 0, 1449, 1447, 1, 0, 0, 0, 1450, 1451, 5, 103, 0, 0, 1451, 1452, 3, 52, 26, 0, 1452, 243, 1, 0, 0, 0, 1453, 1454, 5, 103, 0, 0, 1454, 1455, 3, 52, 26, 0, 1455, 1456, 5, 57, 0, 0, 1456, 1457, 3, 236, 118, 0, 1457, 1458, 5, 58, 0, 0, 1458, 245, 1, 0, 0, 0, 1459, 1461, 5, 59, 0, 0, 1460, 1462, 3, 248, 124, 0, 1461, 1460, 1, 0, 0, 0, 1461, 1462, 1, 0, 0, 0, 1462, 1464, 1, 0, 0, 0, 1463, 1465, 5, 64, 0, 0, 1464, 1463, 1, 0, 0, 0, 1464, 1465, 1, 0, 0, 0, 1465, 1466, 1, 0, 0, 0, 1466, 1467, 5, 60, 0, 0, 1467, 247, 1, 0, 0, 0, 1468, 1473, 3, 112, 56, 0, 1469, 1470, 5, 64, 0, 0, 1470, 1472, 3, 112, 56, 0, 1471, 1469, 1, 0, 0, 0, 1472, 1475, 1, 0, 0, 0, 1473, 1471, 1, 0, 0, 0, 1473, 1474, 1, 0, 0, 0, 1474, 249, 1, 0, 0, 0, 1475, 1473, 1, 0, 0, 0, 1476, 1478, 5, 59, 0, 0, 1477, 1479, 3, 252, 126, 0, 1478, 1477, 1, 0, 0, 0, 1478, 1479, 1, 0, 0, 0, 1479, 1480, 1, 0, 0, 0, 1480, 1481, 5, 60, 0, 0, 1481, 251, 1, 0, 0, 0, 1482, 1484, 3, 254, 127, 0, 1483, 1482, 1, 0, 0, 0, 1484, 1485, 1, 0, 0, 0, 1485, 1483, 1, 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 253, 1, 0, 0, 0, 1487, 1491, 3, 256, 128, 0, 1488, 1491, 3, 80, 40, 0, 1489, 1491, 3, 260, 130, 0, 1490, 1487, 1, 0, 0, 0, 1490, 1488, 1, 0, 0, 0, 1490, 1489, 1, 0, 0, 0, 1491, 255, 1, 0, 0, 0, 1492, 1493, 3, 258, 129, 0, 1493, 1494, 5, 63, 0, 0, 1494, 257, 1, 0, 0, 0, 1495, 1497, 3, 154, 77, 0, 1496, 1495, 1, 0, 0, 0, 1497, 1500, 1, 0, 0, 0, 1498, 1496, 1, 0, 0, 0, 1498, 1499, 1, 0, 0, 0, 1499, 1501, 1, 0, 0, 0, 1500, 1498, 1, 0, 0, 0, 1501, 1502, 3, 114, 57, 0, 1502, 1503, 3, 106, 53, 0, 1503, 259, 1, 0, 0, 0, 1504, 1511, 3, 264, 132, 0, 1505, 1511, 3, 268, 134, 0, 1506, 1511, 3, 276, 138, 0, 1507, 1511, 3, 278, 139, 0, 1508, 1511, 3, 296, 148, 0, 1509, 1511, 3, 302, 151, 0, 1510, 1504, 1, 0, 0, 0, 1510, 1505, 1, 0, 0, 0, 1510, 1506, 1, 0, 0, 0, 1510, 1507, 1, 0, 0, 0, 1510, 1508, 1, 0, 0, 0, 1510, 1509, 1, 0, 0, 0, 1511, 261, 1, 0, 0, 0, 1512, 1518, 3, 264, 132, 0, 1513, 1518, 3, 270, 135, 0, 1514, 1518, 3, 280, 140, 0, 1515, 1518, 3, 298, 149, 0, 1516, 1518, 3, 304, 152, 0, 1517, 1512, 1, 0, 0, 0, 1517, 1513, 1, 0, 0, 0, 1517, 1514, 1, 0, 0, 0, 1517, 1515, 1, 0, 0, 0, 1517, 1516, 1, 0, 0, 0, 1518, 263, 1, 0, 0, 0, 1519, 1532, 3, 250, 125, 0, 1520, 1532, 3, 266, 133, 0, 1521, 1532, 3, 272, 136, 0, 1522, 1532, 3, 282, 141, 0, 1523, 1532, 3, 284, 142, 0, 1524, 1532, 3, 300, 150, 0, 1525, 1532, 3, 320, 160, 0, 1526, 1532, 3, 322, 161, 0, 1527, 1532, 3, 324, 162, 0, 1528, 1532, 3, 328, 164, 0, 1529, 1532, 3, 326, 163, 0, 1530, 1532, 3, 330, 165, 0, 1531, 1519, 1, 0, 0, 0, 1531, 1520, 1, 0, 0, 0, 1531, 1521, 1, 0, 0, 0, 1531, 1522, 1, 0, 0, 0, 1531, 1523, 1, 0, 0, 0, 1531, 1524, 1, 0, 0, 0, 1531, 1525, 1, 0, 0, 0, 1531, 1526, 1, 0, 0, 0, 1531, 1527, 1, 0, 0, 0, 1531, 1528, 1, 0, 0, 0, 1531, 1529, 1, 0, 0, 0, 1531, 1530, 1, 0, 0, 0, 1532, 265, 1, 0, 0, 0, 1533, 1534, 5, 63, 0, 0, 1534, 267, 1, 0, 0, 0, 1535, 1536, 5, 102, 0, 0, 1536, 1537, 5, 72, 0, 0, 1537, 1538, 3, 260, 130, 0, 1538, 269, 1, 0, 0, 0, 1539, 1540, 5, 102, 0, 0, 1540, 1541, 5, 72, 0, 0, 1541, 1542, 3, 262, 131, 0, 1542, 271, 1, 0, 0, 0, 1543, 1544, 3, 274, 137, 0, 1544, 1545, 5, 63, 0, 0, 1545, 273, 1, 0, 0, 0, 1546, 1554, 3, 424, 212, 0, 1547, 1554, 3, 454, 227, 0, 1548, 1554, 3, 456, 228, 0, 1549, 1554, 3, 462, 231, 0, 1550, 1554, 3, 466, 233, 0, 1551, 1554, 3, 390, 195, 0, 1552, 1554, 3, 370, 185, 0, 1553, 1546, 1, 0, 0, 0, 1553, 1547, 1, 0, 0, 0, 1553, 1548, 1, 0, 0, 0, 1553, 1549, 1, 0, 0, 0, 1553, 1550, 1, 0, 0, 0, 1553, 1551, 1, 0, 0, 0, 1553, 1552, 1, 0, 0, 0, 1554, 275, 1, 0, 0, 0, 1555, 1556, 5, 22, 0, 0, 1556, 1557, 5, 57, 0, 0, 1557, 1558, 3, 412, 206, 0, 1558, 1559, 5, 58, 0, 0, 1559, 1560, 3, 260, 130, 0, 1560, 277, 1, 0, 0, 0, 1561, 1562, 5, 22, 0, 0, 1562, 1563, 5, 57, 0, 0, 1563, 1564, 3, 412, 206, 0, 1564, 1565, 5, 58, 0, 0, 1565, 1566, 3, 262, 131, 0, 1566, 1567, 5, 15, 0, 0, 1567, 1568, 3, 260, 130, 0, 1568, 279, 1, 0, 0, 0, 1569, 1570, 5, 22, 0, 0, 1570, 1571, 5, 57, 0, 0, 1571, 1572, 3, 412, 206, 0, 1572, 1573, 5, 58, 0, 0, 1573, 1574, 3, 262, 131, 0, 1574, 1575, 5, 15, 0, 0, 1575, 1576, 3, 262, 131, 0, 1576, 281, 1, 0, 0, 0, 1577, 1578, 5, 2, 0, 0, 1578, 1579, 3, 412, 206, 0, 1579, 1580, 5, 63, 0, 0, 1580, 1588, 1, 0, 0, 0, 1581, 1582, 5, 2, 0, 0, 1582, 1583, 3, 412, 206, 0, 1583, 1584, 5, 72, 0, 0, 1584, 1585, 3, 412, 206, 0, 1585, 1586, 5, 63, 0, 0, 1586, 1588, 1, 0, 0, 0, 1587, 1577, 1, 0, 0, 0, 1587, 1581, 1, 0, 0, 0, 1588, 283, 1, 0, 0, 0, 1589, 1590, 5, 41, 0, 0, 1590, 1591, 5, 57, 0, 0, 1591, 1592, 3, 412, 206, 0, 1592, 1593, 5, 58, 0, 0, 1593, 1594, 3, 286, 143, 0, 1594, 285, 1, 0, 0, 0, 1595, 1599, 5, 59, 0, 0, 1596, 1598, 3, 288, 144, 0, 1597, 1596, 1, 0, 0, 0, 1598, 1601, 1, 0, 0, 0, 1599, 1597, 1, 0, 0, 0, 1599, 1600, 1, 0, 0, 0, 1600, 1605, 1, 0, 0, 0, 1601, 1599, 1, 0, 0, 0, 1602, 1604, 3, 292, 146, 0, 1603, 1602, 1, 0, 0, 0, 1604, 1607, 1, 0, 0, 0, 1605, 1603, 1, 0, 0, 0, 1605, 1606, 1, 0, 0, 0, 1606, 1608, 1, 0, 0, 0, 1607, 1605, 1, 0, 0, 0, 1608, 1609, 5, 60, 0, 0, 1609, 287, 1, 0, 0, 0, 1610, 1611, 3, 290, 145, 0, 1611, 1612, 3, 252, 126, 0, 1612, 289, 1, 0, 0, 0, 1613, 1617, 3, 292, 146, 0, 1614, 1616, 3, 292, 146, 0, 1615, 1614, 1, 0, 0, 0, 1616, 1619, 1, 0, 0, 0, 1617, 1615, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 291, 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1620, 1621, 5, 6, 0, 0, 1621, 1622, 3, 410, 205, 0, 1622, 1623, 5, 72, 0, 0, 1623, 1631, 1, 0, 0, 0, 1624, 1625, 5, 6, 0, 0, 1625, 1626, 3, 294, 147, 0, 1626, 1627, 5, 72, 0, 0, 1627, 1631, 1, 0, 0, 0, 1628, 1629, 5, 12, 0, 0, 1629, 1631, 5, 72, 0, 0, 1630, 1620, 1, 0, 0, 0, 1630, 1624, 1, 0, 0, 0, 1630, 1628, 1, 0, 0, 0, 1631, 293, 1, 0, 0, 0, 1632, 1633, 5, 102, 0, 0, 1633, 295, 1, 0, 0, 0, 1634, 1635, 5, 50, 0, 0, 1635, 1636, 5, 57, 0, 0, 1636, 1637, 3, 412, 206, 0, 1637, 1638, 5, 58, 0, 0, 1638, 1639, 3, 260, 130, 0, 1639, 297, 1, 0, 0, 0, 1640, 1641, 5, 50, 0, 0, 1641, 1642, 5, 57, 0, 0, 1642, 1643, 3, 412, 206, 0, 1643, 1644, 5, 58, 0, 0, 1644, 1645, 3, 262, 131, 0, 1645, 299, 1, 0, 0, 0, 1646, 1647, 5, 13, 0, 0, 1647, 1648, 3, 260, 130, 0, 1648, 1649, 5, 50, 0, 0, 1649, 1650, 5, 57, 0, 0, 1650, 1651, 3, 412, 206, 0, 1651, 1652, 5, 58, 0, 0, 1652, 1653, 5, 63, 0, 0, 1653, 301, 1, 0, 0, 0, 1654, 1657, 3, 306, 153, 0, 1655, 1657, 3, 316, 158, 0, 1656, 1654, 1, 0, 0, 0, 1656, 1655, 1, 0, 0, 0, 1657, 303, 1, 0, 0, 0, 1658, 1661, 3, 308, 154, 0, 1659, 1661, 3, 318, 159, 0, 1660, 1658, 1, 0, 0, 0, 1660, 1659, 1, 0, 0, 0, 1661, 305, 1, 0, 0, 0, 1662, 1663, 5, 21, 0, 0, 1663, 1665, 5, 57, 0, 0, 1664, 1666, 3, 310, 155, 0, 1665, 1664, 1, 0, 0, 0, 1665, 1666, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1669, 5, 63, 0, 0, 1668, 1670, 3, 412, 206, 0, 1669, 1668, 1, 0, 0, 0, 1669, 1670, 1, 0, 0, 0, 1670, 1671, 1, 0, 0, 0, 1671, 1673, 5, 63, 0, 0, 1672, 1674, 3, 312, 156, 0, 1673, 1672, 1, 0, 0, 0, 1673, 1674, 1, 0, 0, 0, 1674, 1675, 1, 0, 0, 0, 1675, 1676, 5, 58, 0, 0, 1676, 1677, 3, 260, 130, 0, 1677, 307, 1, 0, 0, 0, 1678, 1679, 5, 21, 0, 0, 1679, 1681, 5, 57, 0, 0, 1680, 1682, 3, 310, 155, 0, 1681, 1680, 1, 0, 0, 0, 1681, 1682, 1, 0, 0, 0, 1682, 1683, 1, 0, 0, 0, 1683, 1685, 5, 63, 0, 0, 1684, 1686, 3, 412, 206, 0, 1685, 1684, 1, 0, 0, 0, 1685, 1686, 1, 0, 0, 0, 1686, 1687, 1, 0, 0, 0, 1687, 1689, 5, 63, 0, 0, 1688, 1690, 3, 312, 156, 0, 1689, 1688, 1, 0, 0, 0, 1689, 1690, 1, 0, 0, 0, 1690, 1691, 1, 0, 0, 0, 1691, 1692, 5, 58, 0, 0, 1692, 1693, 3, 262, 131, 0, 1693, 309, 1, 0, 0, 0, 1694, 1697, 3, 314, 157, 0, 1695, 1697, 3, 258, 129, 0, 1696, 1694, 1, 0, 0, 0, 1696, 1695, 1, 0, 0, 0, 1697, 311, 1, 0, 0, 0, 1698, 1699, 3, 314, 157, 0, 1699, 313, 1, 0, 0, 0, 1700, 1705, 3, 274, 137, 0, 1701, 1702, 5, 64, 0, 0, 1702, 1704, 3, 274, 137, 0, 1703, 1701, 1, 0, 0, 0, 1704, 1707, 1, 0, 0, 0, 1705, 1703, 1, 0, 0, 0, 1705, 1706, 1, 0, 0, 0, 1706, 315, 1, 0, 0, 0, 1707, 1705, 1, 0, 0, 0, 1708, 1709, 5, 21, 0, 0, 1709, 1713, 5, 57, 0, 0, 1710, 1712, 3, 154, 77, 0, 1711, 1710, 1, 0, 0, 0, 1712, 1715, 1, 0, 0, 0, 1713, 1711, 1, 0, 0, 0, 1713, 1714, 1, 0, 0, 0, 1714, 1716, 1, 0, 0, 0, 1715, 1713, 1, 0, 0, 0, 1716, 1717, 3, 114, 57, 0, 1717, 1718, 3, 110, 55, 0, 1718, 1719, 5, 72, 0, 0, 1719, 1720, 3, 412, 206, 0, 1720, 1721, 5, 58, 0, 0, 1721, 1722, 3, 260, 130, 0, 1722, 317, 1, 0, 0, 0, 1723, 1724, 5, 21, 0, 0, 1724, 1728, 5, 57, 0, 0, 1725, 1727, 3, 154, 77, 0, 1726, 1725, 1, 0, 0, 0, 1727, 1730, 1, 0, 0, 0, 1728, 1726, 1, 0, 0, 0, 1728, 1729, 1, 0, 0, 0, 1729, 1731, 1, 0, 0, 0, 1730, 1728, 1, 0, 0, 0, 1731, 1732, 3, 114, 57, 0, 1732, 1733, 3, 110, 55, 0, 1733, 1734, 5, 72, 0, 0, 1734, 1735, 3, 412, 206, 0, 1735, 1736, 5, 58, 0, 0, 1736, 1737, 3, 262, 131, 0, 1737, 319, 1, 0, 0, 0, 1738, 1740, 5, 4, 0, 0, 1739, 1741, 5, 102, 0, 0, 1740, 1739, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1742, 1, 0, 0, 0, 1742, 1743, 5, 63, 0, 0, 1743, 321, 1, 0, 0, 0, 1744, 1746, 5, 11, 0, 0, 1745, 1747, 5, 102, 0, 0, 1746, 1745, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 5, 63, 0, 0, 1749, 323, 1, 0, 0, 0, 1750, 1752, 5, 36, 0, 0, 1751, 1753, 3, 412, 206, 0, 1752, 1751, 1, 0, 0, 0, 1752, 1753, 1, 0, 0, 0, 1753, 1754, 1, 0, 0, 0, 1754, 1755, 5, 63, 0, 0, 1755, 325, 1, 0, 0, 0, 1756, 1757, 5, 44, 0, 0, 1757, 1758, 3, 412, 206, 0, 1758, 1759, 5, 63, 0, 0, 1759, 327, 1, 0, 0, 0, 1760, 1761, 5, 42, 0, 0, 1761, 1762, 5, 57, 0, 0, 1762, 1763, 3, 412, 206, 0, 1763, 1764, 5, 58, 0, 0, 1764, 1765, 3, 250, 125, 0, 1765, 329, 1, 0, 0, 0, 1766, 1767, 5, 47, 0, 0, 1767, 1768, 3, 250, 125, 0, 1768, 1769, 3, 332, 166, 0, 1769, 1779, 1, 0, 0, 0, 1770, 1771, 5, 47, 0, 0, 1771, 1773, 3, 250, 125, 0, 1772, 1774, 3, 332, 166, 0, 1773, 1772, 1, 0, 0, 0, 1773, 1774, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1776, 3, 340, 170, 0, 1776, 1779, 1, 0, 0, 0, 1777, 1779, 3, 342, 171, 0, 1778, 1766, 1, 0, 0, 0, 1778, 1770, 1, 0, 0, 0, 1778, 1777, 1, 0, 0, 0, 1779, 331, 1, 0, 0, 0, 1780, 1784, 3, 334, 167, 0, 1781, 1783, 3, 334, 167, 0, 1782, 1781, 1, 0, 0, 0, 1783, 1786, 1, 0, 0, 0, 1784, 1782, 1, 0, 0, 0, 1784, 1785, 1, 0, 0, 0, 1785, 333, 1, 0, 0, 0, 1786, 1784, 1, 0, 0, 0, 1787, 1788, 5, 7, 0, 0, 1788, 1789, 5, 57, 0, 0, 1789, 1790, 3, 336, 168, 0, 1790, 1791, 5, 58, 0, 0, 1791, 1792, 3, 250, 125, 0, 1792, 335, 1, 0, 0, 0, 1793, 1795, 3, 154, 77, 0, 1794, 1793, 1, 0, 0, 0, 1795, 1798, 1, 0, 0, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1799, 1, 0, 0, 0, 1798, 1796, 1, 0, 0, 0, 1799, 1800, 3, 338, 169, 0, 1800, 1801, 3, 110, 55, 0, 1801, 337, 1, 0, 0, 0, 1802, 1807, 3, 122, 61, 0, 1803, 1804, 5, 86, 0, 0, 1804, 1806, 3, 14, 7, 0, 1805, 1803, 1, 0, 0, 0, 1806, 1809, 1, 0, 0, 0, 1807, 1805, 1, 0, 0, 0, 1807, 1808, 1, 0, 0, 0, 1808, 339, 1, 0, 0, 0, 1809, 1807, 1, 0, 0, 0, 1810, 1811, 5, 19, 0, 0, 1811, 1812, 3, 250, 125, 0, 1812, 341, 1, 0, 0, 0, 1813, 1814, 5, 47, 0, 0, 1814, 1815, 3, 344, 172, 0, 1815, 1817, 3, 250, 125, 0, 1816, 1818, 3, 332, 166, 0, 1817, 1816, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1820, 1, 0, 0, 0, 1819, 1821, 3, 340, 170, 0, 1820, 1819, 1, 0, 0, 0, 1820, 1821, 1, 0, 0, 0, 1821, 343, 1, 0, 0, 0, 1822, 1823, 5, 57, 0, 0, 1823, 1825, 3, 346, 173, 0, 1824, 1826, 5, 63, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1828, 5, 58, 0, 0, 1828, 345, 1, 0, 0, 0, 1829, 1834, 3, 348, 174, 0, 1830, 1831, 5, 63, 0, 0, 1831, 1833, 3, 348, 174, 0, 1832, 1830, 1, 0, 0, 0, 1833, 1836, 1, 0, 0, 0, 1834, 1832, 1, 0, 0, 0, 1834, 1835, 1, 0, 0, 0, 1835, 347, 1, 0, 0, 0, 1836, 1834, 1, 0, 0, 0, 1837, 1839, 3, 154, 77, 0, 1838, 1837, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1838, 1, 0, 0, 0, 1840, 1841, 1, 0, 0, 0, 1841, 1843, 1, 0, 0, 0, 1842, 1840, 1, 0, 0, 0, 1843, 1844, 3, 114, 57, 0, 1844, 1845, 3, 110, 55, 0, 1845, 1846, 5, 66, 0, 0, 1846, 1847, 3, 412, 206, 0, 1847, 349, 1, 0, 0, 0, 1848, 1851, 3, 364, 182, 0, 1849, 1851, 3, 404, 202, 0, 1850, 1848, 1, 0, 0, 0, 1850, 1849, 1, 0, 0, 0, 1851, 1855, 1, 0, 0, 0, 1852, 1854, 3, 358, 179, 0, 1853, 1852, 1, 0, 0, 0, 1854, 1857, 1, 0, 0, 0, 1855, 1853, 1, 0, 0, 0, 1855, 1856, 1, 0, 0, 0, 1856, 351, 1, 0, 0, 0, 1857, 1855, 1, 0, 0, 0, 1858, 1888, 3, 0, 0, 0, 1859, 1864, 3, 52, 26, 0, 1860, 1861, 5, 61, 0, 0, 1861, 1863, 5, 62, 0, 0, 1862, 1860, 1, 0, 0, 0, 1863, 1866, 1, 0, 0, 0, 1864, 1862, 1, 0, 0, 0, 1864, 1865, 1, 0, 0, 0, 1865, 1867, 1, 0, 0, 0, 1866, 1864, 1, 0, 0, 0, 1867, 1868, 5, 65, 0, 0, 1868, 1869, 5, 9, 0, 0, 1869, 1888, 1, 0, 0, 0, 1870, 1871, 5, 48, 0, 0, 1871, 1872, 5, 65, 0, 0, 1872, 1888, 5, 9, 0, 0, 1873, 1888, 5, 43, 0, 0, 1874, 1875, 3, 52, 26, 0, 1875, 1876, 5, 65, 0, 0, 1876, 1877, 5, 43, 0, 0, 1877, 1888, 1, 0, 0, 0, 1878, 1879, 5, 57, 0, 0, 1879, 1880, 3, 412, 206, 0, 1880, 1881, 5, 58, 0, 0, 1881, 1888, 1, 0, 0, 0, 1882, 1888, 3, 370, 185, 0, 1883, 1888, 3, 378, 189, 0, 1884, 1888, 3, 384, 192, 0, 1885, 1888, 3, 390, 195, 0, 1886, 1888, 3, 398, 199, 0, 1887, 1858, 1, 0, 0, 0, 1887, 1859, 1, 0, 0, 0, 1887, 1870, 1, 0, 0, 0, 1887, 1873, 1, 0, 0, 0, 1887, 1874, 1, 0, 0, 0, 1887, 1878, 1, 0, 0, 0, 1887, 1882, 1, 0, 0, 0, 1887, 1883, 1, 0, 0, 0, 1887, 1884, 1, 0, 0, 0, 1887, 1885, 1, 0, 0, 0, 1887, 1886, 1, 0, 0, 0, 1888, 353, 1, 0, 0, 0, 1889, 1890, 1, 0, 0, 0, 1890, 355, 1, 0, 0, 0, 1891, 1920, 3, 0, 0, 0, 1892, 1897, 3, 52, 26, 0, 1893, 1894, 5, 61, 0, 0, 1894, 1896, 5, 62, 0, 0, 1895, 1893, 1, 0, 0, 0, 1896, 1899, 1, 0, 0, 0, 1897, 1895, 1, 0, 0, 0, 1897, 1898, 1, 0, 0, 0, 1898, 1900, 1, 0, 0, 0, 1899, 1897, 1, 0, 0, 0, 1900, 1901, 5, 65, 0, 0, 1901, 1902, 5, 9, 0, 0, 1902, 1920, 1, 0, 0, 0, 1903, 1904, 5, 48, 0, 0, 1904, 1905, 5, 65, 0, 0, 1905, 1920, 5, 9, 0, 0, 1906, 1920, 5, 43, 0, 0, 1907, 1908, 3, 52, 26, 0, 1908, 1909, 5, 65, 0, 0, 1909, 1910, 5, 43, 0, 0, 1910, 1920, 1, 0, 0, 0, 1911, 1912, 5, 57, 0, 0, 1912, 1913, 3, 412, 206, 0, 1913, 1914, 5, 58, 0, 0, 1914, 1920, 1, 0, 0, 0, 1915, 1920, 3, 370, 185, 0, 1916, 1920, 3, 378, 189, 0, 1917, 1920, 3, 390, 195, 0, 1918, 1920, 3, 398, 199, 0, 1919, 1891, 1, 0, 0, 0, 1919, 1892, 1, 0, 0, 0, 1919, 1903, 1, 0, 0, 0, 1919, 1906, 1, 0, 0, 0, 1919, 1907, 1, 0, 0, 0, 1919, 1911, 1, 0, 0, 0, 1919, 1915, 1, 0, 0, 0, 1919, 1916, 1, 0, 0, 0, 1919, 1917, 1, 0, 0, 0, 1919, 1918, 1, 0, 0, 0, 1920, 357, 1, 0, 0, 0, 1921, 1927, 3, 372, 186, 0, 1922, 1927, 3, 380, 190, 0, 1923, 1927, 3, 386, 193, 0, 1924, 1927, 3, 392, 196, 0, 1925, 1927, 3, 400, 200, 0, 1926, 1921, 1, 0, 0, 0, 1926, 1922, 1, 0, 0, 0, 1926, 1923, 1, 0, 0, 0, 1926, 1924, 1, 0, 0, 0, 1926, 1925, 1, 0, 0, 0, 1927, 359, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 361, 1, 0, 0, 0, 1930, 1935, 3, 372, 186, 0, 1931, 1935, 3, 380, 190, 0, 1932, 1935, 3, 392, 196, 0, 1933, 1935, 3, 400, 200, 0, 1934, 1930, 1, 0, 0, 0, 1934, 1931, 1, 0, 0, 0, 1934, 1932, 1, 0, 0, 0, 1934, 1933, 1, 0, 0, 0, 1935, 363, 1, 0, 0, 0, 1936, 1977, 3, 0, 0, 0, 1937, 1942, 3, 52, 26, 0, 1938, 1939, 5, 61, 0, 0, 1939, 1941, 5, 62, 0, 0, 1940, 1938, 1, 0, 0, 0, 1941, 1944, 1, 0, 0, 0, 1942, 1940, 1, 0, 0, 0, 1942, 1943, 1, 0, 0, 0, 1943, 1945, 1, 0, 0, 0, 1944, 1942, 1, 0, 0, 0, 1945, 1946, 5, 65, 0, 0, 1946, 1947, 5, 9, 0, 0, 1947, 1977, 1, 0, 0, 0, 1948, 1953, 3, 116, 58, 0, 1949, 1950, 5, 61, 0, 0, 1950, 1952, 5, 62, 0, 0, 1951, 1949, 1, 0, 0, 0, 1952, 1955, 1, 0, 0, 0, 1953, 1951, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1956, 1, 0, 0, 0, 1955, 1953, 1, 0, 0, 0, 1956, 1957, 5, 65, 0, 0, 1957, 1958, 5, 9, 0, 0, 1958, 1977, 1, 0, 0, 0, 1959, 1960, 5, 48, 0, 0, 1960, 1961, 5, 65, 0, 0, 1961, 1977, 5, 9, 0, 0, 1962, 1977, 5, 43, 0, 0, 1963, 1964, 3, 52, 26, 0, 1964, 1965, 5, 65, 0, 0, 1965, 1966, 5, 43, 0, 0, 1966, 1977, 1, 0, 0, 0, 1967, 1968, 5, 57, 0, 0, 1968, 1969, 3, 412, 206, 0, 1969, 1970, 5, 58, 0, 0, 1970, 1977, 1, 0, 0, 0, 1971, 1977, 3, 374, 187, 0, 1972, 1977, 3, 382, 191, 0, 1973, 1977, 3, 388, 194, 0, 1974, 1977, 3, 394, 197, 0, 1975, 1977, 3, 402, 201, 0, 1976, 1936, 1, 0, 0, 0, 1976, 1937, 1, 0, 0, 0, 1976, 1948, 1, 0, 0, 0, 1976, 1959, 1, 0, 0, 0, 1976, 1962, 1, 0, 0, 0, 1976, 1963, 1, 0, 0, 0, 1976, 1967, 1, 0, 0, 0, 1976, 1971, 1, 0, 0, 0, 1976, 1972, 1, 0, 0, 0, 1976, 1973, 1, 0, 0, 0, 1976, 1974, 1, 0, 0, 0, 1976, 1975, 1, 0, 0, 0, 1977, 365, 1, 0, 0, 0, 1978, 1979, 1, 0, 0, 0, 1979, 367, 1, 0, 0, 0, 1980, 2020, 3, 0, 0, 0, 1981, 1986, 3, 52, 26, 0, 1982, 1983, 5, 61, 0, 0, 1983, 1985, 5, 62, 0, 0, 1984, 1982, 1, 0, 0, 0, 1985, 1988, 1, 0, 0, 0, 1986, 1984, 1, 0, 0, 0, 1986, 1987, 1, 0, 0, 0, 1987, 1989, 1, 0, 0, 0, 1988, 1986, 1, 0, 0, 0, 1989, 1990, 5, 65, 0, 0, 1990, 1991, 5, 9, 0, 0, 1991, 2020, 1, 0, 0, 0, 1992, 1997, 3, 116, 58, 0, 1993, 1994, 5, 61, 0, 0, 1994, 1996, 5, 62, 0, 0, 1995, 1993, 1, 0, 0, 0, 1996, 1999, 1, 0, 0, 0, 1997, 1995, 1, 0, 0, 0, 1997, 1998, 1, 0, 0, 0, 1998, 2000, 1, 0, 0, 0, 1999, 1997, 1, 0, 0, 0, 2000, 2001, 5, 65, 0, 0, 2001, 2002, 5, 9, 0, 0, 2002, 2020, 1, 0, 0, 0, 2003, 2004, 5, 48, 0, 0, 2004, 2005, 5, 65, 0, 0, 2005, 2020, 5, 9, 0, 0, 2006, 2020, 5, 43, 0, 0, 2007, 2008, 3, 52, 26, 0, 2008, 2009, 5, 65, 0, 0, 2009, 2010, 5, 43, 0, 0, 2010, 2020, 1, 0, 0, 0, 2011, 2012, 5, 57, 0, 0, 2012, 2013, 3, 412, 206, 0, 2013, 2014, 5, 58, 0, 0, 2014, 2020, 1, 0, 0, 0, 2015, 2020, 3, 374, 187, 0, 2016, 2020, 3, 382, 191, 0, 2017, 2020, 3, 394, 197, 0, 2018, 2020, 3, 402, 201, 0, 2019, 1980, 1, 0, 0, 0, 2019, 1981, 1, 0, 0, 0, 2019, 1992, 1, 0, 0, 0, 2019, 2003, 1, 0, 0, 0, 2019, 2006, 1, 0, 0, 0, 2019, 2007, 1, 0, 0, 0, 2019, 2011, 1, 0, 0, 0, 2019, 2015, 1, 0, 0, 0, 2019, 2016, 1, 0, 0, 0, 2019, 2017, 1, 0, 0, 0, 2019, 2018, 1, 0, 0, 0, 2020, 369, 1, 0, 0, 0, 2021, 2023, 5, 31, 0, 0, 2022, 2024, 3, 40, 20, 0, 2023, 2022, 1, 0, 0, 0, 2023, 2024, 1, 0, 0, 0, 2024, 2028, 1, 0, 0, 0, 2025, 2027, 3, 228, 114, 0, 2026, 2025, 1, 0, 0, 0, 2027, 2030, 1, 0, 0, 0, 2028, 2026, 1, 0, 0, 0, 2028, 2029, 1, 0, 0, 0, 2029, 2031, 1, 0, 0, 0, 2030, 2028, 1, 0, 0, 0, 2031, 2042, 5, 102, 0, 0, 2032, 2036, 5, 65, 0, 0, 2033, 2035, 3, 228, 114, 0, 2034, 2033, 1, 0, 0, 0, 2035, 2038, 1, 0, 0, 0, 2036, 2034, 1, 0, 0, 0, 2036, 2037, 1, 0, 0, 0, 2037, 2039, 1, 0, 0, 0, 2038, 2036, 1, 0, 0, 0, 2039, 2041, 5, 102, 0, 0, 2040, 2032, 1, 0, 0, 0, 2041, 2044, 1, 0, 0, 0, 2042, 2040, 1, 0, 0, 0, 2042, 2043, 1, 0, 0, 0, 2043, 2046, 1, 0, 0, 0, 2044, 2042, 1, 0, 0, 0, 2045, 2047, 3, 376, 188, 0, 2046, 2045, 1, 0, 0, 0, 2046, 2047, 1, 0, 0, 0, 2047, 2048, 1, 0, 0, 0, 2048, 2050, 5, 57, 0, 0, 2049, 2051, 3, 396, 198, 0, 2050, 2049, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2052, 1, 0, 0, 0, 2052, 2054, 5, 58, 0, 0, 2053, 2055, 3, 96, 48, 0, 2054, 2053, 1, 0, 0, 0, 2054, 2055, 1, 0, 0, 0, 2055, 2105, 1, 0, 0, 0, 2056, 2057, 3, 56, 28, 0, 2057, 2058, 5, 65, 0, 0, 2058, 2060, 5, 31, 0, 0, 2059, 2061, 3, 40, 20, 0, 2060, 2059, 1, 0, 0, 0, 2060, 2061, 1, 0, 0, 0, 2061, 2065, 1, 0, 0, 0, 2062, 2064, 3, 228, 114, 0, 2063, 2062, 1, 0, 0, 0, 2064, 2067, 1, 0, 0, 0, 2065, 2063, 1, 0, 0, 0, 2065, 2066, 1, 0, 0, 0, 2066, 2068, 1, 0, 0, 0, 2067, 2065, 1, 0, 0, 0, 2068, 2070, 5, 102, 0, 0, 2069, 2071, 3, 376, 188, 0, 2070, 2069, 1, 0, 0, 0, 2070, 2071, 1, 0, 0, 0, 2071, 2072, 1, 0, 0, 0, 2072, 2074, 5, 57, 0, 0, 2073, 2075, 3, 396, 198, 0, 2074, 2073, 1, 0, 0, 0, 2074, 2075, 1, 0, 0, 0, 2075, 2076, 1, 0, 0, 0, 2076, 2078, 5, 58, 0, 0, 2077, 2079, 3, 96, 48, 0, 2078, 2077, 1, 0, 0, 0, 2078, 2079, 1, 0, 0, 0, 2079, 2105, 1, 0, 0, 0, 2080, 2081, 3, 350, 175, 0, 2081, 2082, 5, 65, 0, 0, 2082, 2084, 5, 31, 0, 0, 2083, 2085, 3, 40, 20, 0, 2084, 2083, 1, 0, 0, 0, 2084, 2085, 1, 0, 0, 0, 2085, 2089, 1, 0, 0, 0, 2086, 2088, 3, 228, 114, 0, 2087, 2086, 1, 0, 0, 0, 2088, 2091, 1, 0, 0, 0, 2089, 2087, 1, 0, 0, 0, 2089, 2090, 1, 0, 0, 0, 2090, 2092, 1, 0, 0, 0, 2091, 2089, 1, 0, 0, 0, 2092, 2094, 5, 102, 0, 0, 2093, 2095, 3, 376, 188, 0, 2094, 2093, 1, 0, 0, 0, 2094, 2095, 1, 0, 0, 0, 2095, 2096, 1, 0, 0, 0, 2096, 2098, 5, 57, 0, 0, 2097, 2099, 3, 396, 198, 0, 2098, 2097, 1, 0, 0, 0, 2098, 2099, 1, 0, 0, 0, 2099, 2100, 1, 0, 0, 0, 2100, 2102, 5, 58, 0, 0, 2101, 2103, 3, 96, 48, 0, 2102, 2101, 1, 0, 0, 0, 2102, 2103, 1, 0, 0, 0, 2103, 2105, 1, 0, 0, 0, 2104, 2021, 1, 0, 0, 0, 2104, 2056, 1, 0, 0, 0, 2104, 2080, 1, 0, 0, 0, 2105, 371, 1, 0, 0, 0, 2106, 2107, 5, 65, 0, 0, 2107, 2109, 5, 31, 0, 0, 2108, 2110, 3, 40, 20, 0, 2109, 2108, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2114, 1, 0, 0, 0, 2111, 2113, 3, 228, 114, 0, 2112, 2111, 1, 0, 0, 0, 2113, 2116, 1, 0, 0, 0, 2114, 2112, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 2117, 1, 0, 0, 0, 2116, 2114, 1, 0, 0, 0, 2117, 2119, 5, 102, 0, 0, 2118, 2120, 3, 376, 188, 0, 2119, 2118, 1, 0, 0, 0, 2119, 2120, 1, 0, 0, 0, 2120, 2121, 1, 0, 0, 0, 2121, 2123, 5, 57, 0, 0, 2122, 2124, 3, 396, 198, 0, 2123, 2122, 1, 0, 0, 0, 2123, 2124, 1, 0, 0, 0, 2124, 2125, 1, 0, 0, 0, 2125, 2127, 5, 58, 0, 0, 2126, 2128, 3, 96, 48, 0, 2127, 2126, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 373, 1, 0, 0, 0, 2129, 2131, 5, 31, 0, 0, 2130, 2132, 3, 40, 20, 0, 2131, 2130, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2136, 1, 0, 0, 0, 2133, 2135, 3, 228, 114, 0, 2134, 2133, 1, 0, 0, 0, 2135, 2138, 1, 0, 0, 0, 2136, 2134, 1, 0, 0, 0, 2136, 2137, 1, 0, 0, 0, 2137, 2139, 1, 0, 0, 0, 2138, 2136, 1, 0, 0, 0, 2139, 2150, 5, 102, 0, 0, 2140, 2144, 5, 65, 0, 0, 2141, 2143, 3, 228, 114, 0, 2142, 2141, 1, 0, 0, 0, 2143, 2146, 1, 0, 0, 0, 2144, 2142, 1, 0, 0, 0, 2144, 2145, 1, 0, 0, 0, 2145, 2147, 1, 0, 0, 0, 2146, 2144, 1, 0, 0, 0, 2147, 2149, 5, 102, 0, 0, 2148, 2140, 1, 0, 0, 0, 2149, 2152, 1, 0, 0, 0, 2150, 2148, 1, 0, 0, 0, 2150, 2151, 1, 0, 0, 0, 2151, 2154, 1, 0, 0, 0, 2152, 2150, 1, 0, 0, 0, 2153, 2155, 3, 376, 188, 0, 2154, 2153, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2156, 1, 0, 0, 0, 2156, 2158, 5, 57, 0, 0, 2157, 2159, 3, 396, 198, 0, 2158, 2157, 1, 0, 0, 0, 2158, 2159, 1, 0, 0, 0, 2159, 2160, 1, 0, 0, 0, 2160, 2162, 5, 58, 0, 0, 2161, 2163, 3, 96, 48, 0, 2162, 2161, 1, 0, 0, 0, 2162, 2163, 1, 0, 0, 0, 2163, 2189, 1, 0, 0, 0, 2164, 2165, 3, 56, 28, 0, 2165, 2166, 5, 65, 0, 0, 2166, 2168, 5, 31, 0, 0, 2167, 2169, 3, 40, 20, 0, 2168, 2167, 1, 0, 0, 0, 2168, 2169, 1, 0, 0, 0, 2169, 2173, 1, 0, 0, 0, 2170, 2172, 3, 228, 114, 0, 2171, 2170, 1, 0, 0, 0, 2172, 2175, 1, 0, 0, 0, 2173, 2171, 1, 0, 0, 0, 2173, 2174, 1, 0, 0, 0, 2174, 2176, 1, 0, 0, 0, 2175, 2173, 1, 0, 0, 0, 2176, 2178, 5, 102, 0, 0, 2177, 2179, 3, 376, 188, 0, 2178, 2177, 1, 0, 0, 0, 2178, 2179, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2182, 5, 57, 0, 0, 2181, 2183, 3, 396, 198, 0, 2182, 2181, 1, 0, 0, 0, 2182, 2183, 1, 0, 0, 0, 2183, 2184, 1, 0, 0, 0, 2184, 2186, 5, 58, 0, 0, 2185, 2187, 3, 96, 48, 0, 2186, 2185, 1, 0, 0, 0, 2186, 2187, 1, 0, 0, 0, 2187, 2189, 1, 0, 0, 0, 2188, 2129, 1, 0, 0, 0, 2188, 2164, 1, 0, 0, 0, 2189, 375, 1, 0, 0, 0, 2190, 2194, 3, 40, 20, 0, 2191, 2192, 5, 68, 0, 0, 2192, 2194, 5, 67, 0, 0, 2193, 2190, 1, 0, 0, 0, 2193, 2191, 1, 0, 0, 0, 2194, 377, 1, 0, 0, 0, 2195, 2196, 3, 350, 175, 0, 2196, 2197, 5, 65, 0, 0, 2197, 2198, 5, 102, 0, 0, 2198, 2209, 1, 0, 0, 0, 2199, 2200, 5, 40, 0, 0, 2200, 2201, 5, 65, 0, 0, 2201, 2209, 5, 102, 0, 0, 2202, 2203, 3, 52, 26, 0, 2203, 2204, 5, 65, 0, 0, 2204, 2205, 5, 40, 0, 0, 2205, 2206, 5, 65, 0, 0, 2206, 2207, 5, 102, 0, 0, 2207, 2209, 1, 0, 0, 0, 2208, 2195, 1, 0, 0, 0, 2208, 2199, 1, 0, 0, 0, 2208, 2202, 1, 0, 0, 0, 2209, 379, 1, 0, 0, 0, 2210, 2211, 5, 65, 0, 0, 2211, 2212, 5, 102, 0, 0, 2212, 381, 1, 0, 0, 0, 2213, 2214, 5, 40, 0, 0, 2214, 2215, 5, 65, 0, 0, 2215, 2223, 5, 102, 0, 0, 2216, 2217, 3, 52, 26, 0, 2217, 2218, 5, 65, 0, 0, 2218, 2219, 5, 40, 0, 0, 2219, 2220, 5, 65, 0, 0, 2220, 2221, 5, 102, 0, 0, 2221, 2223, 1, 0, 0, 0, 2222, 2213, 1, 0, 0, 0, 2222, 2216, 1, 0, 0, 0, 2223, 383, 1, 0, 0, 0, 2224, 2225, 3, 56, 28, 0, 2225, 2226, 5, 61, 0, 0, 2226, 2227, 3, 412, 206, 0, 2227, 2228, 5, 62, 0, 0, 2228, 2235, 1, 0, 0, 0, 2229, 2230, 3, 356, 178, 0, 2230, 2231, 5, 61, 0, 0, 2231, 2232, 3, 412, 206, 0, 2232, 2233, 5, 62, 0, 0, 2233, 2235, 1, 0, 0, 0, 2234, 2224, 1, 0, 0, 0, 2234, 2229, 1, 0, 0, 0, 2235, 2243, 1, 0, 0, 0, 2236, 2237, 3, 354, 177, 0, 2237, 2238, 5, 61, 0, 0, 2238, 2239, 3, 412, 206, 0, 2239, 2240, 5, 62, 0, 0, 2240, 2242, 1, 0, 0, 0, 2241, 2236, 1, 0, 0, 0, 2242, 2245, 1, 0, 0, 0, 2243, 2241, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 385, 1, 0, 0, 0, 2245, 2243, 1, 0, 0, 0, 2246, 2247, 3, 362, 181, 0, 2247, 2248, 5, 61, 0, 0, 2248, 2249, 3, 412, 206, 0, 2249, 2257, 5, 62, 0, 0, 2250, 2251, 3, 360, 180, 0, 2251, 2252, 5, 61, 0, 0, 2252, 2253, 3, 412, 206, 0, 2253, 2254, 5, 62, 0, 0, 2254, 2256, 1, 0, 0, 0, 2255, 2250, 1, 0, 0, 0, 2256, 2259, 1, 0, 0, 0, 2257, 2255, 1, 0, 0, 0, 2257, 2258, 1, 0, 0, 0, 2258, 387, 1, 0, 0, 0, 2259, 2257, 1, 0, 0, 0, 2260, 2261, 3, 56, 28, 0, 2261, 2262, 5, 61, 0, 0, 2262, 2263, 3, 412, 206, 0, 2263, 2264, 5, 62, 0, 0, 2264, 2271, 1, 0, 0, 0, 2265, 2266, 3, 368, 184, 0, 2266, 2267, 5, 61, 0, 0, 2267, 2268, 3, 412, 206, 0, 2268, 2269, 5, 62, 0, 0, 2269, 2271, 1, 0, 0, 0, 2270, 2260, 1, 0, 0, 0, 2270, 2265, 1, 0, 0, 0, 2271, 2279, 1, 0, 0, 0, 2272, 2273, 3, 366, 183, 0, 2273, 2274, 5, 61, 0, 0, 2274, 2275, 3, 412, 206, 0, 2275, 2276, 5, 62, 0, 0, 2276, 2278, 1, 0, 0, 0, 2277, 2272, 1, 0, 0, 0, 2278, 2281, 1, 0, 0, 0, 2279, 2277, 1, 0, 0, 0, 2279, 2280, 1, 0, 0, 0, 2280, 389, 1, 0, 0, 0, 2281, 2279, 1, 0, 0, 0, 2282, 2283, 3, 58, 29, 0, 2283, 2285, 5, 57, 0, 0, 2284, 2286, 3, 396, 198, 0, 2285, 2284, 1, 0, 0, 0, 2285, 2286, 1, 0, 0, 0, 2286, 2287, 1, 0, 0, 0, 2287, 2288, 5, 58, 0, 0, 2288, 2351, 1, 0, 0, 0, 2289, 2290, 3, 52, 26, 0, 2290, 2292, 5, 65, 0, 0, 2291, 2293, 3, 40, 20, 0, 2292, 2291, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2294, 1, 0, 0, 0, 2294, 2295, 5, 102, 0, 0, 2295, 2297, 5, 57, 0, 0, 2296, 2298, 3, 396, 198, 0, 2297, 2296, 1, 0, 0, 0, 2297, 2298, 1, 0, 0, 0, 2298, 2299, 1, 0, 0, 0, 2299, 2300, 5, 58, 0, 0, 2300, 2351, 1, 0, 0, 0, 2301, 2302, 3, 56, 28, 0, 2302, 2304, 5, 65, 0, 0, 2303, 2305, 3, 40, 20, 0, 2304, 2303, 1, 0, 0, 0, 2304, 2305, 1, 0, 0, 0, 2305, 2306, 1, 0, 0, 0, 2306, 2307, 5, 102, 0, 0, 2307, 2309, 5, 57, 0, 0, 2308, 2310, 3, 396, 198, 0, 2309, 2308, 1, 0, 0, 0, 2309, 2310, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2312, 5, 58, 0, 0, 2312, 2351, 1, 0, 0, 0, 2313, 2314, 3, 350, 175, 0, 2314, 2316, 5, 65, 0, 0, 2315, 2317, 3, 40, 20, 0, 2316, 2315, 1, 0, 0, 0, 2316, 2317, 1, 0, 0, 0, 2317, 2318, 1, 0, 0, 0, 2318, 2319, 5, 102, 0, 0, 2319, 2321, 5, 57, 0, 0, 2320, 2322, 3, 396, 198, 0, 2321, 2320, 1, 0, 0, 0, 2321, 2322, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2324, 5, 58, 0, 0, 2324, 2351, 1, 0, 0, 0, 2325, 2326, 5, 40, 0, 0, 2326, 2328, 5, 65, 0, 0, 2327, 2329, 3, 40, 20, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2330, 1, 0, 0, 0, 2330, 2331, 5, 102, 0, 0, 2331, 2333, 5, 57, 0, 0, 2332, 2334, 3, 396, 198, 0, 2333, 2332, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2335, 1, 0, 0, 0, 2335, 2351, 5, 58, 0, 0, 2336, 2337, 3, 52, 26, 0, 2337, 2338, 5, 65, 0, 0, 2338, 2339, 5, 40, 0, 0, 2339, 2341, 5, 65, 0, 0, 2340, 2342, 3, 40, 20, 0, 2341, 2340, 1, 0, 0, 0, 2341, 2342, 1, 0, 0, 0, 2342, 2343, 1, 0, 0, 0, 2343, 2344, 5, 102, 0, 0, 2344, 2346, 5, 57, 0, 0, 2345, 2347, 3, 396, 198, 0, 2346, 2345, 1, 0, 0, 0, 2346, 2347, 1, 0, 0, 0, 2347, 2348, 1, 0, 0, 0, 2348, 2349, 5, 58, 0, 0, 2349, 2351, 1, 0, 0, 0, 2350, 2282, 1, 0, 0, 0, 2350, 2289, 1, 0, 0, 0, 2350, 2301, 1, 0, 0, 0, 2350, 2313, 1, 0, 0, 0, 2350, 2325, 1, 0, 0, 0, 2350, 2336, 1, 0, 0, 0, 2351, 391, 1, 0, 0, 0, 2352, 2354, 5, 65, 0, 0, 2353, 2355, 3, 40, 20, 0, 2354, 2353, 1, 0, 0, 0, 2354, 2355, 1, 0, 0, 0, 2355, 2356, 1, 0, 0, 0, 2356, 2357, 5, 102, 0, 0, 2357, 2359, 5, 57, 0, 0, 2358, 2360, 3, 396, 198, 0, 2359, 2358, 1, 0, 0, 0, 2359, 2360, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2362, 5, 58, 0, 0, 2362, 393, 1, 0, 0, 0, 2363, 2364, 3, 58, 29, 0, 2364, 2366, 5, 57, 0, 0, 2365, 2367, 3, 396, 198, 0, 2366, 2365, 1, 0, 0, 0, 2366, 2367, 1, 0, 0, 0, 2367, 2368, 1, 0, 0, 0, 2368, 2369, 5, 58, 0, 0, 2369, 2420, 1, 0, 0, 0, 2370, 2371, 3, 52, 26, 0, 2371, 2373, 5, 65, 0, 0, 2372, 2374, 3, 40, 20, 0, 2373, 2372, 1, 0, 0, 0, 2373, 2374, 1, 0, 0, 0, 2374, 2375, 1, 0, 0, 0, 2375, 2376, 5, 102, 0, 0, 2376, 2378, 5, 57, 0, 0, 2377, 2379, 3, 396, 198, 0, 2378, 2377, 1, 0, 0, 0, 2378, 2379, 1, 0, 0, 0, 2379, 2380, 1, 0, 0, 0, 2380, 2381, 5, 58, 0, 0, 2381, 2420, 1, 0, 0, 0, 2382, 2383, 3, 56, 28, 0, 2383, 2385, 5, 65, 0, 0, 2384, 2386, 3, 40, 20, 0, 2385, 2384, 1, 0, 0, 0, 2385, 2386, 1, 0, 0, 0, 2386, 2387, 1, 0, 0, 0, 2387, 2388, 5, 102, 0, 0, 2388, 2390, 5, 57, 0, 0, 2389, 2391, 3, 396, 198, 0, 2390, 2389, 1, 0, 0, 0, 2390, 2391, 1, 0, 0, 0, 2391, 2392, 1, 0, 0, 0, 2392, 2393, 5, 58, 0, 0, 2393, 2420, 1, 0, 0, 0, 2394, 2395, 5, 40, 0, 0, 2395, 2397, 5, 65, 0, 0, 2396, 2398, 3, 40, 20, 0, 2397, 2396, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2399, 1, 0, 0, 0, 2399, 2400, 5, 102, 0, 0, 2400, 2402, 5, 57, 0, 0, 2401, 2403, 3, 396, 198, 0, 2402, 2401, 1, 0, 0, 0, 2402, 2403, 1, 0, 0, 0, 2403, 2404, 1, 0, 0, 0, 2404, 2420, 5, 58, 0, 0, 2405, 2406, 3, 52, 26, 0, 2406, 2407, 5, 65, 0, 0, 2407, 2408, 5, 40, 0, 0, 2408, 2410, 5, 65, 0, 0, 2409, 2411, 3, 40, 20, 0, 2410, 2409, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2412, 1, 0, 0, 0, 2412, 2413, 5, 102, 0, 0, 2413, 2415, 5, 57, 0, 0, 2414, 2416, 3, 396, 198, 0, 2415, 2414, 1, 0, 0, 0, 2415, 2416, 1, 0, 0, 0, 2416, 2417, 1, 0, 0, 0, 2417, 2418, 5, 58, 0, 0, 2418, 2420, 1, 0, 0, 0, 2419, 2363, 1, 0, 0, 0, 2419, 2370, 1, 0, 0, 0, 2419, 2382, 1, 0, 0, 0, 2419, 2394, 1, 0, 0, 0, 2419, 2405, 1, 0, 0, 0, 2420, 395, 1, 0, 0, 0, 2421, 2426, 3, 412, 206, 0, 2422, 2423, 5, 64, 0, 0, 2423, 2425, 3, 412, 206, 0, 2424, 2422, 1, 0, 0, 0, 2425, 2428, 1, 0, 0, 0, 2426, 2424, 1, 0, 0, 0, 2426, 2427, 1, 0, 0, 0, 2427, 397, 1, 0, 0, 0, 2428, 2426, 1, 0, 0, 0, 2429, 2430, 3, 56, 28, 0, 2430, 2432, 5, 90, 0, 0, 2431, 2433, 3, 40, 20, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 5, 102, 0, 0, 2435, 2477, 1, 0, 0, 0, 2436, 2437, 3, 10, 5, 0, 2437, 2439, 5, 90, 0, 0, 2438, 2440, 3, 40, 20, 0, 2439, 2438, 1, 0, 0, 0, 2439, 2440, 1, 0, 0, 0, 2440, 2441, 1, 0, 0, 0, 2441, 2442, 5, 102, 0, 0, 2442, 2477, 1, 0, 0, 0, 2443, 2444, 3, 350, 175, 0, 2444, 2446, 5, 90, 0, 0, 2445, 2447, 3, 40, 20, 0, 2446, 2445, 1, 0, 0, 0, 2446, 2447, 1, 0, 0, 0, 2447, 2448, 1, 0, 0, 0, 2448, 2449, 5, 102, 0, 0, 2449, 2477, 1, 0, 0, 0, 2450, 2451, 5, 40, 0, 0, 2451, 2453, 5, 90, 0, 0, 2452, 2454, 3, 40, 20, 0, 2453, 2452, 1, 0, 0, 0, 2453, 2454, 1, 0, 0, 0, 2454, 2455, 1, 0, 0, 0, 2455, 2477, 5, 102, 0, 0, 2456, 2457, 3, 52, 26, 0, 2457, 2458, 5, 65, 0, 0, 2458, 2459, 5, 40, 0, 0, 2459, 2461, 5, 90, 0, 0, 2460, 2462, 3, 40, 20, 0, 2461, 2460, 1, 0, 0, 0, 2461, 2462, 1, 0, 0, 0, 2462, 2463, 1, 0, 0, 0, 2463, 2464, 5, 102, 0, 0, 2464, 2477, 1, 0, 0, 0, 2465, 2466, 3, 14, 7, 0, 2466, 2468, 5, 90, 0, 0, 2467, 2469, 3, 40, 20, 0, 2468, 2467, 1, 0, 0, 0, 2468, 2469, 1, 0, 0, 0, 2469, 2470, 1, 0, 0, 0, 2470, 2471, 5, 31, 0, 0, 2471, 2477, 1, 0, 0, 0, 2472, 2473, 3, 28, 14, 0, 2473, 2474, 5, 90, 0, 0, 2474, 2475, 5, 31, 0, 0, 2475, 2477, 1, 0, 0, 0, 2476, 2429, 1, 0, 0, 0, 2476, 2436, 1, 0, 0, 0, 2476, 2443, 1, 0, 0, 0, 2476, 2450, 1, 0, 0, 0, 2476, 2456, 1, 0, 0, 0, 2476, 2465, 1, 0, 0, 0, 2476, 2472, 1, 0, 0, 0, 2477, 399, 1, 0, 0, 0, 2478, 2480, 5, 90, 0, 0, 2479, 2481, 3, 40, 20, 0, 2480, 2479, 1, 0, 0, 0, 2480, 2481, 1, 0, 0, 0, 2481, 2482, 1, 0, 0, 0, 2482, 2483, 5, 102, 0, 0, 2483, 401, 1, 0, 0, 0, 2484, 2485, 3, 56, 28, 0, 2485, 2487, 5, 90, 0, 0, 2486, 2488, 3, 40, 20, 0, 2487, 2486, 1, 0, 0, 0, 2487, 2488, 1, 0, 0, 0, 2488, 2489, 1, 0, 0, 0, 2489, 2490, 5, 102, 0, 0, 2490, 2525, 1, 0, 0, 0, 2491, 2492, 3, 10, 5, 0, 2492, 2494, 5, 90, 0, 0, 2493, 2495, 3, 40, 20, 0, 2494, 2493, 1, 0, 0, 0, 2494, 2495, 1, 0, 0, 0, 2495, 2496, 1, 0, 0, 0, 2496, 2497, 5, 102, 0, 0, 2497, 2525, 1, 0, 0, 0, 2498, 2499, 5, 40, 0, 0, 2499, 2501, 5, 90, 0, 0, 2500, 2502, 3, 40, 20, 0, 2501, 2500, 1, 0, 0, 0, 2501, 2502, 1, 0, 0, 0, 2502, 2503, 1, 0, 0, 0, 2503, 2525, 5, 102, 0, 0, 2504, 2505, 3, 52, 26, 0, 2505, 2506, 5, 65, 0, 0, 2506, 2507, 5, 40, 0, 0, 2507, 2509, 5, 90, 0, 0, 2508, 2510, 3, 40, 20, 0, 2509, 2508, 1, 0, 0, 0, 2509, 2510, 1, 0, 0, 0, 2510, 2511, 1, 0, 0, 0, 2511, 2512, 5, 102, 0, 0, 2512, 2525, 1, 0, 0, 0, 2513, 2514, 3, 14, 7, 0, 2514, 2516, 5, 90, 0, 0, 2515, 2517, 3, 40, 20, 0, 2516, 2515, 1, 0, 0, 0, 2516, 2517, 1, 0, 0, 0, 2517, 2518, 1, 0, 0, 0, 2518, 2519, 5, 31, 0, 0, 2519, 2525, 1, 0, 0, 0, 2520, 2521, 3, 28, 14, 0, 2521, 2522, 5, 90, 0, 0, 2522, 2523, 5, 31, 0, 0, 2523, 2525, 1, 0, 0, 0, 2524, 2484, 1, 0, 0, 0, 2524, 2491, 1, 0, 0, 0, 2524, 2498, 1, 0, 0, 0, 2524, 2504, 1, 0, 0, 0, 2524, 2513, 1, 0, 0, 0, 2524, 2520, 1, 0, 0, 0, 2525, 403, 1, 0, 0, 0, 2526, 2527, 5, 31, 0, 0, 2527, 2528, 3, 2, 1, 0, 2528, 2530, 3, 406, 203, 0, 2529, 2531, 3, 30, 15, 0, 2530, 2529, 1, 0, 0, 0, 2530, 2531, 1, 0, 0, 0, 2531, 2549, 1, 0, 0, 0, 2532, 2533, 5, 31, 0, 0, 2533, 2534, 3, 12, 6, 0, 2534, 2536, 3, 406, 203, 0, 2535, 2537, 3, 30, 15, 0, 2536, 2535, 1, 0, 0, 0, 2536, 2537, 1, 0, 0, 0, 2537, 2549, 1, 0, 0, 0, 2538, 2539, 5, 31, 0, 0, 2539, 2540, 3, 2, 1, 0, 2540, 2541, 3, 30, 15, 0, 2541, 2542, 3, 246, 123, 0, 2542, 2549, 1, 0, 0, 0, 2543, 2544, 5, 31, 0, 0, 2544, 2545, 3, 12, 6, 0, 2545, 2546, 3, 30, 15, 0, 2546, 2547, 3, 246, 123, 0, 2547, 2549, 1, 0, 0, 0, 2548, 2526, 1, 0, 0, 0, 2548, 2532, 1, 0, 0, 0, 2548, 2538, 1, 0, 0, 0, 2548, 2543, 1, 0, 0, 0, 2549, 405, 1, 0, 0, 0, 2550, 2554, 3, 408, 204, 0, 2551, 2553, 3, 408, 204, 0, 2552, 2551, 1, 0, 0, 0, 2553, 2556, 1, 0, 0, 0, 2554, 2552, 1, 0, 0, 0, 2554, 2555, 1, 0, 0, 0, 2555, 407, 1, 0, 0, 0, 2556, 2554, 1, 0, 0, 0, 2557, 2559, 3, 228, 114, 0, 2558, 2557, 1, 0, 0, 0, 2559, 2562, 1, 0, 0, 0, 2560, 2558, 1, 0, 0, 0, 2560, 2561, 1, 0, 0, 0, 2561, 2563, 1, 0, 0, 0, 2562, 2560, 1, 0, 0, 0, 2563, 2564, 5, 61, 0, 0, 2564, 2565, 3, 412, 206, 0, 2565, 2566, 5, 62, 0, 0, 2566, 409, 1, 0, 0, 0, 2567, 2568, 3, 412, 206, 0, 2568, 411, 1, 0, 0, 0, 2569, 2572, 3, 414, 207, 0, 2570, 2572, 3, 422, 211, 0, 2571, 2569, 1, 0, 0, 0, 2571, 2570, 1, 0, 0, 0, 2572, 413, 1, 0, 0, 0, 2573, 2574, 3, 416, 208, 0, 2574, 2575, 5, 89, 0, 0, 2575, 2576, 3, 420, 210, 0, 2576, 415, 1, 0, 0, 0, 2577, 2588, 5, 102, 0, 0, 2578, 2580, 5, 57, 0, 0, 2579, 2581, 3, 148, 74, 0, 2580, 2579, 1, 0, 0, 0, 2580, 2581, 1, 0, 0, 0, 2581, 2582, 1, 0, 0, 0, 2582, 2588, 5, 58, 0, 0, 2583, 2584, 5, 57, 0, 0, 2584, 2585, 3, 418, 209, 0, 2585, 2586, 5, 58, 0, 0, 2586, 2588, 1, 0, 0, 0, 2587, 2577, 1, 0, 0, 0, 2587, 2578, 1, 0, 0, 0, 2587, 2583, 1, 0, 0, 0, 2588, 417, 1, 0, 0, 0, 2589, 2594, 5, 102, 0, 0, 2590, 2591, 5, 64, 0, 0, 2591, 2593, 5, 102, 0, 0, 2592, 2590, 1, 0, 0, 0, 2593, 2596, 1, 0, 0, 0, 2594, 2592, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 419, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 2600, 3, 412, 206, 0, 2598, 2600, 3, 250, 125, 0, 2599, 2597, 1, 0, 0, 0, 2599, 2598, 1, 0, 0, 0, 2600, 421, 1, 0, 0, 0, 2601, 2604, 3, 430, 215, 0, 2602, 2604, 3, 424, 212, 0, 2603, 2601, 1, 0, 0, 0, 2603, 2602, 1, 0, 0, 0, 2604, 423, 1, 0, 0, 0, 2605, 2606, 3, 426, 213, 0, 2606, 2607, 3, 428, 214, 0, 2607, 2608, 3, 412, 206, 0, 2608, 425, 1, 0, 0, 0, 2609, 2613, 3, 56, 28, 0, 2610, 2613, 3, 378, 189, 0, 2611, 2613, 3, 384, 192, 0, 2612, 2609, 1, 0, 0, 0, 2612, 2610, 1, 0, 0, 0, 2612, 2611, 1, 0, 0, 0, 2613, 427, 1, 0, 0, 0, 2614, 2615, 7, 3, 0, 0, 2615, 429, 1, 0, 0, 0, 2616, 2624, 3, 432, 216, 0, 2617, 2618, 3, 432, 216, 0, 2618, 2619, 5, 71, 0, 0, 2619, 2620, 3, 412, 206, 0, 2620, 2621, 5, 72, 0, 0, 2621, 2622, 3, 430, 215, 0, 2622, 2624, 1, 0, 0, 0, 2623, 2616, 1, 0, 0, 0, 2623, 2617, 1, 0, 0, 0, 2624, 431, 1, 0, 0, 0, 2625, 2626, 6, 216, -1, 0, 2626, 2627, 3, 434, 217, 0, 2627, 2633, 1, 0, 0, 0, 2628, 2629, 10, 1, 0, 0, 2629, 2630, 5, 78, 0, 0, 2630, 2632, 3, 434, 217, 0, 2631, 2628, 1, 0, 0, 0, 2632, 2635, 1, 0, 0, 0, 2633, 2631, 1, 0, 0, 0, 2633, 2634, 1, 0, 0, 0, 2634, 433, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2636, 2637, 6, 217, -1, 0, 2637, 2638, 3, 436, 218, 0, 2638, 2644, 1, 0, 0, 0, 2639, 2640, 10, 1, 0, 0, 2640, 2641, 5, 77, 0, 0, 2641, 2643, 3, 436, 218, 0, 2642, 2639, 1, 0, 0, 0, 2643, 2646, 1, 0, 0, 0, 2644, 2642, 1, 0, 0, 0, 2644, 2645, 1, 0, 0, 0, 2645, 435, 1, 0, 0, 0, 2646, 2644, 1, 0, 0, 0, 2647, 2648, 6, 218, -1, 0, 2648, 2649, 3, 438, 219, 0, 2649, 2655, 1, 0, 0, 0, 2650, 2651, 10, 1, 0, 0, 2651, 2652, 5, 86, 0, 0, 2652, 2654, 3, 438, 219, 0, 2653, 2650, 1, 0, 0, 0, 2654, 2657, 1, 0, 0, 0, 2655, 2653, 1, 0, 0, 0, 2655, 2656, 1, 0, 0, 0, 2656, 437, 1, 0, 0, 0, 2657, 2655, 1, 0, 0, 0, 2658, 2659, 6, 219, -1, 0, 2659, 2660, 3, 440, 220, 0, 2660, 2666, 1, 0, 0, 0, 2661, 2662, 10, 1, 0, 0, 2662, 2663, 5, 87, 0, 0, 2663, 2665, 3, 440, 220, 0, 2664, 2661, 1, 0, 0, 0, 2665, 2668, 1, 0, 0, 0, 2666, 2664, 1, 0, 0, 0, 2666, 2667, 1, 0, 0, 0, 2667, 439, 1, 0, 0, 0, 2668, 2666, 1, 0, 0, 0, 2669, 2670, 6, 220, -1, 0, 2670, 2671, 3, 442, 221, 0, 2671, 2677, 1, 0, 0, 0, 2672, 2673, 10, 1, 0, 0, 2673, 2674, 5, 85, 0, 0, 2674, 2676, 3, 442, 221, 0, 2675, 2672, 1, 0, 0, 0, 2676, 2679, 1, 0, 0, 0, 2677, 2675, 1, 0, 0, 0, 2677, 2678, 1, 0, 0, 0, 2678, 441, 1, 0, 0, 0, 2679, 2677, 1, 0, 0, 0, 2680, 2681, 6, 221, -1, 0, 2681, 2682, 3, 444, 222, 0, 2682, 2691, 1, 0, 0, 0, 2683, 2684, 10, 2, 0, 0, 2684, 2685, 5, 73, 0, 0, 2685, 2690, 3, 444, 222, 0, 2686, 2687, 10, 1, 0, 0, 2687, 2688, 5, 76, 0, 0, 2688, 2690, 3, 444, 222, 0, 2689, 2683, 1, 0, 0, 0, 2689, 2686, 1, 0, 0, 0, 2690, 2693, 1, 0, 0, 0, 2691, 2689, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 443, 1, 0, 0, 0, 2693, 2691, 1, 0, 0, 0, 2694, 2695, 6, 222, -1, 0, 2695, 2696, 3, 446, 223, 0, 2696, 2714, 1, 0, 0, 0, 2697, 2698, 10, 5, 0, 0, 2698, 2699, 5, 68, 0, 0, 2699, 2713, 3, 446, 223, 0, 2700, 2701, 10, 4, 0, 0, 2701, 2702, 5, 67, 0, 0, 2702, 2713, 3, 446, 223, 0, 2703, 2704, 10, 3, 0, 0, 2704, 2705, 5, 74, 0, 0, 2705, 2713, 3, 446, 223, 0, 2706, 2707, 10, 2, 0, 0, 2707, 2708, 5, 75, 0, 0, 2708, 2713, 3, 446, 223, 0, 2709, 2710, 10, 1, 0, 0, 2710, 2711, 5, 26, 0, 0, 2711, 2713, 3, 10, 5, 0, 2712, 2697, 1, 0, 0, 0, 2712, 2700, 1, 0, 0, 0, 2712, 2703, 1, 0, 0, 0, 2712, 2706, 1, 0, 0, 0, 2712, 2709, 1, 0, 0, 0, 2713, 2716, 1, 0, 0, 0, 2714, 2712, 1, 0, 0, 0, 2714, 2715, 1, 0, 0, 0, 2715, 445, 1, 0, 0, 0, 2716, 2714, 1, 0, 0, 0, 2717, 2718, 6, 223, -1, 0, 2718, 2719, 3, 448, 224, 0, 2719, 2735, 1, 0, 0, 0, 2720, 2721, 10, 3, 0, 0, 2721, 2722, 5, 68, 0, 0, 2722, 2723, 5, 68, 0, 0, 2723, 2734, 3, 448, 224, 0, 2724, 2725, 10, 2, 0, 0, 2725, 2726, 5, 67, 0, 0, 2726, 2727, 5, 67, 0, 0, 2727, 2734, 3, 448, 224, 0, 2728, 2729, 10, 1, 0, 0, 2729, 2730, 5, 67, 0, 0, 2730, 2731, 5, 67, 0, 0, 2731, 2732, 5, 67, 0, 0, 2732, 2734, 3, 448, 224, 0, 2733, 2720, 1, 0, 0, 0, 2733, 2724, 1, 0, 0, 0, 2733, 2728, 1, 0, 0, 0, 2734, 2737, 1, 0, 0, 0, 2735, 2733, 1, 0, 0, 0, 2735, 2736, 1, 0, 0, 0, 2736, 447, 1, 0, 0, 0, 2737, 2735, 1, 0, 0, 0, 2738, 2739, 6, 224, -1, 0, 2739, 2740, 3, 450, 225, 0, 2740, 2749, 1, 0, 0, 0, 2741, 2742, 10, 2, 0, 0, 2742, 2743, 5, 81, 0, 0, 2743, 2748, 3, 450, 225, 0, 2744, 2745, 10, 1, 0, 0, 2745, 2746, 5, 82, 0, 0, 2746, 2748, 3, 450, 225, 0, 2747, 2741, 1, 0, 0, 0, 2747, 2744, 1, 0, 0, 0, 2748, 2751, 1, 0, 0, 0, 2749, 2747, 1, 0, 0, 0, 2749, 2750, 1, 0, 0, 0, 2750, 449, 1, 0, 0, 0, 2751, 2749, 1, 0, 0, 0, 2752, 2753, 6, 225, -1, 0, 2753, 2754, 3, 452, 226, 0, 2754, 2766, 1, 0, 0, 0, 2755, 2756, 10, 3, 0, 0, 2756, 2757, 5, 83, 0, 0, 2757, 2765, 3, 452, 226, 0, 2758, 2759, 10, 2, 0, 0, 2759, 2760, 5, 84, 0, 0, 2760, 2765, 3, 452, 226, 0, 2761, 2762, 10, 1, 0, 0, 2762, 2763, 5, 88, 0, 0, 2763, 2765, 3, 452, 226, 0, 2764, 2755, 1, 0, 0, 0, 2764, 2758, 1, 0, 0, 0, 2764, 2761, 1, 0, 0, 0, 2765, 2768, 1, 0, 0, 0, 2766, 2764, 1, 0, 0, 0, 2766, 2767, 1, 0, 0, 0, 2767, 451, 1, 0, 0, 0, 2768, 2766, 1, 0, 0, 0, 2769, 2777, 3, 454, 227, 0, 2770, 2777, 3, 456, 228, 0, 2771, 2772, 5, 81, 0, 0, 2772, 2777, 3, 452, 226, 0, 2773, 2774, 5, 82, 0, 0, 2774, 2777, 3, 452, 226, 0, 2775, 2777, 3, 458, 229, 0, 2776, 2769, 1, 0, 0, 0, 2776, 2770, 1, 0, 0, 0, 2776, 2771, 1, 0, 0, 0, 2776, 2773, 1, 0, 0, 0, 2776, 2775, 1, 0, 0, 0, 2777, 453, 1, 0, 0, 0, 2778, 2779, 5, 79, 0, 0, 2779, 2780, 3, 452, 226, 0, 2780, 455, 1, 0, 0, 0, 2781, 2782, 5, 80, 0, 0, 2782, 2783, 3, 452, 226, 0, 2783, 457, 1, 0, 0, 0, 2784, 2791, 3, 460, 230, 0, 2785, 2786, 5, 70, 0, 0, 2786, 2791, 3, 452, 226, 0, 2787, 2788, 5, 69, 0, 0, 2788, 2791, 3, 452, 226, 0, 2789, 2791, 3, 470, 235, 0, 2790, 2784, 1, 0, 0, 0, 2790, 2785, 1, 0, 0, 0, 2790, 2787, 1, 0, 0, 0, 2790, 2789, 1, 0, 0, 0, 2791, 459, 1, 0, 0, 0, 2792, 2795, 3, 350, 175, 0, 2793, 2795, 3, 56, 28, 0, 2794, 2792, 1, 0, 0, 0, 2794, 2793, 1, 0, 0, 0, 2795, 2800, 1, 0, 0, 0, 2796, 2799, 3, 464, 232, 0, 2797, 2799, 3, 468, 234, 0, 2798, 2796, 1, 0, 0, 0, 2798, 2797, 1, 0, 0, 0, 2799, 2802, 1, 0, 0, 0, 2800, 2798, 1, 0, 0, 0, 2800, 2801, 1, 0, 0, 0, 2801, 461, 1, 0, 0, 0, 2802, 2800, 1, 0, 0, 0, 2803, 2804, 3, 460, 230, 0, 2804, 2805, 5, 79, 0, 0, 2805, 463, 1, 0, 0, 0, 2806, 2807, 5, 79, 0, 0, 2807, 465, 1, 0, 0, 0, 2808, 2809, 3, 460, 230, 0, 2809, 2810, 5, 80, 0, 0, 2810, 467, 1, 0, 0, 0, 2811, 2812, 5, 80, 0, 0, 2812, 469, 1, 0, 0, 0, 2813, 2814, 5, 57, 0, 0, 2814, 2815, 3, 2, 1, 0, 2815, 2816, 5, 58, 0, 0, 2816, 2817, 3, 452, 226, 0, 2817, 2841, 1, 0, 0, 0, 2818, 2819, 5, 57, 0, 0, 2819, 2823, 3, 10, 5, 0, 2820, 2822, 3, 38, 19, 0, 2821, 2820, 1, 0, 0, 0, 2822, 2825, 1, 0, 0, 0, 2823, 2821, 1, 0, 0, 0, 2823, 2824, 1, 0, 0, 0, 2824, 2826, 1, 0, 0, 0, 2825, 2823, 1, 0, 0, 0, 2826, 2827, 5, 58, 0, 0, 2827, 2828, 3, 458, 229, 0, 2828, 2841, 1, 0, 0, 0, 2829, 2830, 5, 57, 0, 0, 2830, 2834, 3, 10, 5, 0, 2831, 2833, 3, 38, 19, 0, 2832, 2831, 1, 0, 0, 0, 2833, 2836, 1, 0, 0, 0, 2834, 2832, 1, 0, 0, 0, 2834, 2835, 1, 0, 0, 0, 2835, 2837, 1, 0, 0, 0, 2836, 2834, 1, 0, 0, 0, 2837, 2838, 5, 58, 0, 0, 2838, 2839, 3, 414, 207, 0, 2839, 2841, 1, 0, 0, 0, 2840, 2813, 1, 0, 0, 0, 2840, 2818, 1, 0, 0, 0, 2840, 2829, 1, 0, 0, 0, 2841, 471, 1, 0, 0, 0, 322, 477, 484, 488, 492, 501, 505, 509, 511, 517, 522, 529, 534, 536, 542, 547, 552, 557, 568, 582, 587, 595, 602, 608, 613, 624, 627, 641, 646, 651, 656, 662, 672, 680, 690, 698, 710, 714, 719, 725, 733, 746, 775, 779, 784, 790, 793, 796, 808, 819, 833, 840, 849, 856, 861, 876, 883, 889, 893, 897, 901, 905, 910, 914, 918, 920, 925, 932, 937, 939, 945, 950, 954, 973, 978, 994, 999, 1005, 1011, 1013, 1017, 1022, 1026, 1034, 1041, 1049, 1052, 1057, 1065, 1070, 1077, 1084, 1089, 1095, 1107, 1112, 1116, 1126, 1131, 1139, 1142, 1147, 1155, 1158, 1163, 1168, 1173, 1178, 1185, 1190, 1198, 1203, 1208, 1213, 1219, 1225, 1228, 1231, 1240, 1246, 1252, 1255, 1258, 1266, 1271, 1276, 1282, 1285, 1296, 1305, 1315, 1320, 1331, 1336, 1348, 1353, 1365, 1375, 1380, 1388, 1391, 1398, 1406, 1412, 1421, 1431, 1435, 1438, 1447, 1461, 1464, 1473, 1478, 1485, 1490, 1498, 1510, 1517, 1531, 1553, 1587, 1599, 1605, 1617, 1630, 1656, 1660, 1665, 1669, 1673, 1681, 1685, 1689, 1696, 1705, 1713, 1728, 1740, 1746, 1752, 1773, 1778, 1784, 1796, 1807, 1817, 1820, 1825, 1834, 1840, 1850, 1855, 1864, 1887, 1897, 1919, 1926, 1934, 1942, 1953, 1976, 1986, 1997, 2019, 2023, 2028, 2036, 2042, 2046, 2050, 2054, 2060, 2065, 2070, 2074, 2078, 2084, 2089, 2094, 2098, 2102, 2104, 2109, 2114, 2119, 2123, 2127, 2131, 2136, 2144, 2150, 2154, 2158, 2162, 2168, 2173, 2178, 2182, 2186, 2188, 2193, 2208, 2222, 2234, 2243, 2257, 2270, 2279, 2285, 2292, 2297, 2304, 2309, 2316, 2321, 2328, 2333, 2341, 2346, 2350, 2354, 2359, 2366, 2373, 2378, 2385, 2390, 2397, 2402, 2410, 2415, 2419, 2426, 2432, 2439, 2446, 2453, 2461, 2468, 2476, 2480, 2487, 2494, 2501, 2509, 2516, 2524, 2530, 2536, 2548, 2554, 2560, 2571, 2580, 2587, 2594, 2599, 2603, 2612, 2623, 2633, 2644, 2655, 2666, 2677, 2689, 2691, 2712, 2714, 2733, 2735, 2747, 2749, 2764, 2766, 2776, 2790, 2794, 2798, 2800, 2823, 2834, 2840] \ No newline at end of file diff --git a/Assignment-2/Java-8/Java8Parser.java b/Assignment-2/Java-8/Java8Parser.java new file mode 100644 index 0000000..7b07869 --- /dev/null +++ b/Assignment-2/Java-8/Java8Parser.java @@ -0,0 +1,20073 @@ +// Generated from Java-8/Java8Parser.g4 by ANTLR 4.13.2 +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", "CheckReturnValue", "this-escape"}) +public class Java8Parser extends Parser { + static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, + CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, + LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, + ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, + LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, + MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ARROW=89, COLONCOLON=90, + ADD_ASSIGN=91, SUB_ASSIGN=92, MUL_ASSIGN=93, DIV_ASSIGN=94, AND_ASSIGN=95, + OR_ASSIGN=96, XOR_ASSIGN=97, MOD_ASSIGN=98, LSHIFT_ASSIGN=99, RSHIFT_ASSIGN=100, + URSHIFT_ASSIGN=101, Identifier=102, AT=103, ELLIPSIS=104, WS=105, COMMENT=106, + LINE_COMMENT=107; + public static final int + RULE_literal = 0, RULE_primitiveType = 1, RULE_numericType = 2, RULE_integralType = 3, + RULE_floatingPointType = 4, RULE_referenceType = 5, RULE_classOrInterfaceType = 6, + RULE_classType = 7, RULE_classType_lf_classOrInterfaceType = 8, RULE_classType_lfno_classOrInterfaceType = 9, + RULE_interfaceType = 10, RULE_interfaceType_lf_classOrInterfaceType = 11, + RULE_interfaceType_lfno_classOrInterfaceType = 12, RULE_typeVariable = 13, + RULE_arrayType = 14, RULE_dims = 15, RULE_typeParameter = 16, RULE_typeParameterModifier = 17, + RULE_typeBound = 18, RULE_additionalBound = 19, RULE_typeArguments = 20, + RULE_typeArgumentList = 21, RULE_typeArgument = 22, RULE_wildcard = 23, + RULE_wildcardBounds = 24, RULE_packageName = 25, RULE_typeName = 26, RULE_packageOrTypeName = 27, + RULE_expressionName = 28, RULE_methodName = 29, RULE_ambiguousName = 30, + RULE_compilationUnit = 31, RULE_packageDeclaration = 32, RULE_packageModifier = 33, + RULE_importDeclaration = 34, RULE_singleTypeImportDeclaration = 35, RULE_typeImportOnDemandDeclaration = 36, + RULE_singleStaticImportDeclaration = 37, RULE_staticImportOnDemandDeclaration = 38, + RULE_typeDeclaration = 39, RULE_classDeclaration = 40, RULE_normalClassDeclaration = 41, + RULE_classModifier = 42, RULE_typeParameters = 43, RULE_typeParameterList = 44, + RULE_superclass = 45, RULE_superinterfaces = 46, RULE_interfaceTypeList = 47, + RULE_classBody = 48, RULE_classBodyDeclaration = 49, RULE_classMemberDeclaration = 50, + RULE_fieldDeclaration = 51, RULE_fieldModifier = 52, RULE_variableDeclaratorList = 53, + RULE_variableDeclarator = 54, RULE_variableDeclaratorId = 55, RULE_variableInitializer = 56, + RULE_unannType = 57, RULE_unannPrimitiveType = 58, RULE_unannReferenceType = 59, + RULE_unannClassOrInterfaceType = 60, RULE_unannClassType = 61, RULE_unannClassType_lf_unannClassOrInterfaceType = 62, + RULE_unannClassType_lfno_unannClassOrInterfaceType = 63, RULE_unannInterfaceType = 64, + RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 65, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 66, + RULE_unannTypeVariable = 67, RULE_unannArrayType = 68, RULE_methodDeclaration = 69, + RULE_methodModifier = 70, RULE_methodHeader = 71, RULE_result = 72, RULE_methodDeclarator = 73, + RULE_formalParameterList = 74, RULE_formalParameters = 75, RULE_formalParameter = 76, + RULE_variableModifier = 77, RULE_lastFormalParameter = 78, RULE_receiverParameter = 79, + RULE_throws_ = 80, RULE_exceptionTypeList = 81, RULE_exceptionType = 82, + RULE_methodBody = 83, RULE_instanceInitializer = 84, RULE_staticInitializer = 85, + RULE_constructorDeclaration = 86, RULE_constructorModifier = 87, RULE_constructorDeclarator = 88, + RULE_simpleTypeName = 89, RULE_constructorBody = 90, RULE_explicitConstructorInvocation = 91, + RULE_enumDeclaration = 92, RULE_enumBody = 93, RULE_enumConstantList = 94, + RULE_enumConstant = 95, RULE_enumConstantModifier = 96, RULE_enumBodyDeclarations = 97, + RULE_interfaceDeclaration = 98, RULE_normalInterfaceDeclaration = 99, + RULE_interfaceModifier = 100, RULE_extendsInterfaces = 101, RULE_interfaceBody = 102, + RULE_interfaceMemberDeclaration = 103, RULE_constantDeclaration = 104, + RULE_constantModifier = 105, RULE_interfaceMethodDeclaration = 106, RULE_interfaceMethodModifier = 107, + RULE_annotationTypeDeclaration = 108, RULE_annotationTypeBody = 109, RULE_annotationTypeMemberDeclaration = 110, + RULE_annotationTypeElementDeclaration = 111, RULE_annotationTypeElementModifier = 112, + RULE_defaultValue = 113, RULE_annotation = 114, RULE_normalAnnotation = 115, + RULE_elementValuePairList = 116, RULE_elementValuePair = 117, RULE_elementValue = 118, + RULE_elementValueArrayInitializer = 119, RULE_elementValueList = 120, + RULE_markerAnnotation = 121, RULE_singleElementAnnotation = 122, RULE_arrayInitializer = 123, + RULE_variableInitializerList = 124, RULE_block = 125, RULE_blockStatements = 126, + RULE_blockStatement = 127, RULE_localVariableDeclarationStatement = 128, + RULE_localVariableDeclaration = 129, RULE_statement = 130, RULE_statementNoShortIf = 131, + RULE_statementWithoutTrailingSubstatement = 132, RULE_emptyStatement_ = 133, + RULE_labeledStatement = 134, RULE_labeledStatementNoShortIf = 135, RULE_expressionStatement = 136, + RULE_statementExpression = 137, RULE_ifThenStatement = 138, RULE_ifThenElseStatement = 139, + RULE_ifThenElseStatementNoShortIf = 140, RULE_assertStatement = 141, RULE_switchStatement = 142, + RULE_switchBlock = 143, RULE_switchBlockStatementGroup = 144, RULE_switchLabels = 145, + RULE_switchLabel = 146, RULE_enumConstantName = 147, RULE_whileStatement = 148, + RULE_whileStatementNoShortIf = 149, RULE_doStatement = 150, RULE_forStatement = 151, + RULE_forStatementNoShortIf = 152, RULE_basicForStatement = 153, RULE_basicForStatementNoShortIf = 154, + RULE_forInit = 155, RULE_forUpdate = 156, RULE_statementExpressionList = 157, + RULE_enhancedForStatement = 158, RULE_enhancedForStatementNoShortIf = 159, + RULE_breakStatement = 160, RULE_continueStatement = 161, RULE_returnStatement = 162, + RULE_throwStatement = 163, RULE_synchronizedStatement = 164, RULE_tryStatement = 165, + RULE_catches = 166, RULE_catchClause = 167, RULE_catchFormalParameter = 168, + RULE_catchType = 169, RULE_finally_ = 170, RULE_tryWithResourcesStatement = 171, + RULE_resourceSpecification = 172, RULE_resourceList = 173, RULE_resource = 174, + RULE_primary = 175, RULE_primaryNoNewArray = 176, RULE_primaryNoNewArray_lf_arrayAccess = 177, + RULE_primaryNoNewArray_lfno_arrayAccess = 178, RULE_primaryNoNewArray_lf_primary = 179, + RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 180, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 181, + RULE_primaryNoNewArray_lfno_primary = 182, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 183, + RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 184, + RULE_classInstanceCreationExpression = 185, RULE_classInstanceCreationExpression_lf_primary = 186, + RULE_classInstanceCreationExpression_lfno_primary = 187, RULE_typeArgumentsOrDiamond = 188, + RULE_fieldAccess = 189, RULE_fieldAccess_lf_primary = 190, RULE_fieldAccess_lfno_primary = 191, + RULE_arrayAccess = 192, RULE_arrayAccess_lf_primary = 193, RULE_arrayAccess_lfno_primary = 194, + RULE_methodInvocation = 195, RULE_methodInvocation_lf_primary = 196, RULE_methodInvocation_lfno_primary = 197, + RULE_argumentList = 198, RULE_methodReference = 199, RULE_methodReference_lf_primary = 200, + RULE_methodReference_lfno_primary = 201, RULE_arrayCreationExpression = 202, + RULE_dimExprs = 203, RULE_dimExpr = 204, RULE_constantExpression = 205, + RULE_expression = 206, RULE_lambdaExpression = 207, RULE_lambdaParameters = 208, + RULE_inferredFormalParameterList = 209, RULE_lambdaBody = 210, RULE_assignmentExpression = 211, + RULE_assignment = 212, RULE_leftHandSide = 213, RULE_assignmentOperator = 214, + RULE_conditionalExpression = 215, RULE_conditionalOrExpression = 216, + RULE_conditionalAndExpression = 217, RULE_inclusiveOrExpression = 218, + RULE_exclusiveOrExpression = 219, RULE_andExpression = 220, RULE_equalityExpression = 221, + RULE_relationalExpression = 222, RULE_shiftExpression = 223, RULE_additiveExpression = 224, + RULE_multiplicativeExpression = 225, RULE_unaryExpression = 226, RULE_preIncrementExpression = 227, + RULE_preDecrementExpression = 228, RULE_unaryExpressionNotPlusMinus = 229, + RULE_postfixExpression = 230, RULE_postIncrementExpression = 231, RULE_postIncrementExpression_lf_postfixExpression = 232, + RULE_postDecrementExpression = 233, RULE_postDecrementExpression_lf_postfixExpression = 234, + RULE_castExpression = 235; + private static String[] makeRuleNames() { + return new String[] { + "literal", "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", + "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" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", + "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", + "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, + null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", + "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", + "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'->'", "'::'", "'+='", + "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", + "'>>>='", null, "'@'", "'...'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + 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" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + 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 "Java8Parser.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); + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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(472); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 141863388262170624L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode BOOLEAN() { return getToken(Java8Parser.BOOLEAN, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPrimitiveType(this); + } + } + + public final PrimitiveTypeContext primitiveType() throws RecognitionException { + PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_primitiveType); + int _la; + try { + setState(488); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(477); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(474); + annotation(); + } + } + setState(479); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(480); + numericType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(484); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(481); + annotation(); + } + } + setState(486); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(487); + match(BOOLEAN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitNumericType(this); + } + } + + public final NumericTypeContext numericType() throws RecognitionException { + NumericTypeContext _localctx = new NumericTypeContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_numericType); + try { + setState(492); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case INT: + case LONG: + case SHORT: + enterOuterAlt(_localctx, 1); + { + setState(490); + integralType(); + } + break; + case DOUBLE: + case FLOAT: + enterOuterAlt(_localctx, 2); + { + setState(491); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class IntegralTypeContext extends ParserRuleContext { + public TerminalNode BYTE() { return getToken(Java8Parser.BYTE, 0); } + public TerminalNode SHORT() { return getToken(Java8Parser.SHORT, 0); } + public TerminalNode INT() { return getToken(Java8Parser.INT, 0); } + public TerminalNode LONG() { return getToken(Java8Parser.LONG, 0); } + public TerminalNode CHAR() { return getToken(Java8Parser.CHAR, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterIntegralType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitIntegralType(this); + } + } + + public final IntegralTypeContext integralType() throws RecognitionException { + IntegralTypeContext _localctx = new IntegralTypeContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_integralType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(494); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 138110042400L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class FloatingPointTypeContext extends ParserRuleContext { + public TerminalNode FLOAT() { return getToken(Java8Parser.FLOAT, 0); } + public TerminalNode DOUBLE() { return getToken(Java8Parser.DOUBLE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFloatingPointType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFloatingPointType(this); + } + } + + public final FloatingPointTypeContext floatingPointType() throws RecognitionException { + FloatingPointTypeContext _localctx = new FloatingPointTypeContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_floatingPointType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(496); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitReferenceType(this); + } + } + + public final ReferenceTypeContext referenceType() throws RecognitionException { + ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_referenceType); + try { + setState(501); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(498); + classOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(499); + typeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(500); + arrayType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 List interfaceType_lf_classOrInterfaceType() { + return getRuleContexts(InterfaceType_lf_classOrInterfaceTypeContext.class); + } + public InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType(int i) { + return getRuleContext(InterfaceType_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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassOrInterfaceType(this); + } + } + + public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { + ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_classOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(505); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + { + setState(503); + classType_lfno_classOrInterfaceType(); + } + break; + case 2: + { + setState(504); + interfaceType_lfno_classOrInterfaceType(); + } + break; + } + setState(511); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(509); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + setState(507); + classType_lf_classOrInterfaceType(); + } + break; + case 2: + { + setState(508); + interfaceType_lf_classOrInterfaceType(); + } + break; + } + } + } + setState(513); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassType(this); + } + } + + public final ClassTypeContext classType() throws RecognitionException { + ClassTypeContext _localctx = new ClassTypeContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_classType); + int _la; + try { + setState(536); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(517); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(514); + annotation(); + } + } + setState(519); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(520); + match(Identifier); + setState(522); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(521); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(524); + classOrInterfaceType(); + setState(525); + match(DOT); + setState(529); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(526); + annotation(); + } + } + setState(531); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(532); + match(Identifier); + setState(534); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(533); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassType_lf_classOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 16, RULE_classType_lf_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(538); + match(DOT); + setState(542); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(539); + annotation(); + } + } + setState(544); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(545); + match(Identifier); + setState(547); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + { + setState(546); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 18, RULE_classType_lfno_classOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(552); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(549); + annotation(); + } + } + setState(554); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(555); + match(Identifier); + setState(557); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + { + setState(556); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceType(this); + } + } + + public final InterfaceTypeContext interfaceType() throws RecognitionException { + InterfaceTypeContext _localctx = new InterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_interfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(559); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceType_lf_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 22, RULE_interfaceType_lf_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(561); + classType_lf_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceType_lfno_classOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 24, RULE_interfaceType_lfno_classOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(563); + classType_lfno_classOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeVariable(this); + } + } + + public final TypeVariableContext typeVariable() throws RecognitionException { + TypeVariableContext _localctx = new TypeVariableContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_typeVariable); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(568); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(565); + annotation(); + } + } + setState(570); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(571); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitArrayType(this); + } + } + + public final ArrayTypeContext arrayType() throws RecognitionException { + ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_arrayType); + try { + setState(582); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(573); + primitiveType(); + setState(574); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(576); + classOrInterfaceType(); + setState(577); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(579); + typeVariable(); + setState(580); + dims(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DimsContext extends ParserRuleContext { + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterDims(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitDims(this); + } + } + + public final DimsContext dims() throws RecognitionException { + DimsContext _localctx = new DimsContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_dims); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(587); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(584); + annotation(); + } + } + setState(589); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(590); + match(LBRACK); + setState(591); + match(RBRACK); + setState(602); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(595); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(592); + annotation(); + } + } + setState(597); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(598); + match(LBRACK); + setState(599); + match(RBRACK); + } + } + } + setState(604); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeParameter(this); + } + } + + public final TypeParameterContext typeParameter() throws RecognitionException { + TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_typeParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(608); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(605); + typeParameterModifier(); + } + } + setState(610); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(611); + match(Identifier); + setState(613); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(612); + typeBound(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeParameterModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeParameterModifier(this); + } + } + + public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { + TypeParameterModifierContext _localctx = new TypeParameterModifierContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_typeParameterModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(615); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeBoundContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeBound(this); + } + } + + public final TypeBoundContext typeBound() throws RecognitionException { + TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_typeBound); + int _la; + try { + setState(627); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(617); + match(EXTENDS); + setState(618); + typeVariable(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(619); + match(EXTENDS); + setState(620); + classOrInterfaceType(); + setState(624); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(621); + additionalBound(); + } + } + setState(626); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AdditionalBoundContext extends ParserRuleContext { + public TerminalNode BITAND() { return getToken(Java8Parser.BITAND, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAdditionalBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAdditionalBound(this); + } + } + + public final AdditionalBoundContext additionalBound() throws RecognitionException { + AdditionalBoundContext _localctx = new AdditionalBoundContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_additionalBound); + try { + enterOuterAlt(_localctx, 1); + { + setState(629); + match(BITAND); + setState(630); + interfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TypeArgumentListContext typeArgumentList() { + return getRuleContext(TypeArgumentListContext.class,0); + } + public TerminalNode GT() { return getToken(Java8Parser.GT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeArguments(this); + } + } + + public final TypeArgumentsContext typeArguments() throws RecognitionException { + TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_typeArguments); + try { + enterOuterAlt(_localctx, 1); + { + setState(632); + match(LT); + setState(633); + typeArgumentList(); + setState(634); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentListContext extends ParserRuleContext { + public List typeArgument() { + return getRuleContexts(TypeArgumentContext.class); + } + public TypeArgumentContext typeArgument(int i) { + return getRuleContext(TypeArgumentContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeArgumentList(this); + } + } + + public final TypeArgumentListContext typeArgumentList() throws RecognitionException { + TypeArgumentListContext _localctx = new TypeArgumentListContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_typeArgumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(636); + typeArgument(); + setState(641); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(637); + match(COMMA); + setState(638); + typeArgument(); + } + } + setState(643); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeArgument(this); + } + } + + public final TypeArgumentContext typeArgument() throws RecognitionException { + TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_typeArgument); + try { + setState(646); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(644); + referenceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(645); + wildcard(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WildcardContext extends ParserRuleContext { + public TerminalNode QUESTION() { return getToken(Java8Parser.QUESTION, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterWildcard(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitWildcard(this); + } + } + + public final WildcardContext wildcard() throws RecognitionException { + WildcardContext _localctx = new WildcardContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_wildcard); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(651); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(648); + annotation(); + } + } + setState(653); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(654); + match(QUESTION); + setState(656); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS || _la==SUPER) { + { + setState(655); + wildcardBounds(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WildcardBoundsContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterWildcardBounds(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitWildcardBounds(this); + } + } + + public final WildcardBoundsContext wildcardBounds() throws RecognitionException { + WildcardBoundsContext _localctx = new WildcardBoundsContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_wildcardBounds); + try { + setState(662); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXTENDS: + enterOuterAlt(_localctx, 1); + { + setState(658); + match(EXTENDS); + setState(659); + referenceType(); + } + break; + case SUPER: + enterOuterAlt(_localctx, 2); + { + setState(660); + match(SUPER); + setState(661); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageNameContext packageName() { + return getRuleContext(PackageNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPackageName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 50; + enterRecursionRule(_localctx, 50, RULE_packageName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(665); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(672); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageName); + setState(667); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(668); + match(DOT); + setState(669); + match(Identifier); + } + } + } + setState(674); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeName(this); + } + } + + public final TypeNameContext typeName() throws RecognitionException { + TypeNameContext _localctx = new TypeNameContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_typeName); + try { + setState(680); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(675); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(676); + packageOrTypeName(0); + setState(677); + match(DOT); + setState(678); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageOrTypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPackageOrTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 54; + enterRecursionRule(_localctx, 54, RULE_packageOrTypeName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(683); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(690); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new PackageOrTypeNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_packageOrTypeName); + setState(685); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(686); + match(DOT); + setState(687); + match(Identifier); + } + } + } + setState(692); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExpressionName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExpressionName(this); + } + } + + public final ExpressionNameContext expressionName() throws RecognitionException { + ExpressionNameContext _localctx = new ExpressionNameContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_expressionName); + try { + setState(698); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(693); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(694); + ambiguousName(0); + setState(695); + match(DOT); + setState(696); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodName(this); + } + } + + public final MethodNameContext methodName() throws RecognitionException { + MethodNameContext _localctx = new MethodNameContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_methodName); + try { + enterOuterAlt(_localctx, 1); + { + setState(700); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AmbiguousNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public AmbiguousNameContext ambiguousName() { + return getRuleContext(AmbiguousNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAmbiguousName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 60; + enterRecursionRule(_localctx, 60, RULE_ambiguousName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(703); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(710); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AmbiguousNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_ambiguousName); + setState(705); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(706); + match(DOT); + setState(707); + match(Identifier); + } + } + } + setState(712); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCompilationUnit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCompilationUnit(this); + } + } + + public final CompilationUnitContext compilationUnit() throws RecognitionException { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_compilationUnit); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(714); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { + case 1: + { + setState(713); + packageDeclaration(); + } + break; + } + setState(719); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==IMPORT) { + { + { + setState(716); + importDeclaration(); + } + } + setState(721); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(725); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223371151822749182L) != 0) || _la==AT) { + { + { + setState(722); + typeDeclaration(); + } + } + setState(727); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(728); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageDeclarationContext extends ParserRuleContext { + public TerminalNode PACKAGE() { return getToken(Java8Parser.PACKAGE, 0); } + public PackageNameContext packageName() { + return getRuleContext(PackageNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPackageDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPackageDeclaration(this); + } + } + + public final PackageDeclarationContext packageDeclaration() throws RecognitionException { + PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_packageDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(733); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(730); + packageModifier(); + } + } + setState(735); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(736); + match(PACKAGE); + setState(737); + packageName(0); + setState(738); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPackageModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPackageModifier(this); + } + } + + public final PackageModifierContext packageModifier() throws RecognitionException { + PackageModifierContext _localctx = new PackageModifierContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_packageModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(740); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitImportDeclaration(this); + } + } + + public final ImportDeclarationContext importDeclaration() throws RecognitionException { + ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_importDeclaration); + try { + setState(746); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(742); + singleTypeImportDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(743); + typeImportOnDemandDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(744); + singleStaticImportDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(745); + staticImportOnDemandDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleTypeImportDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSingleTypeImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSingleTypeImportDeclaration(this); + } + } + + public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { + SingleTypeImportDeclarationContext _localctx = new SingleTypeImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_singleTypeImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(748); + match(IMPORT); + setState(749); + typeName(); + setState(750); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeImportOnDemandDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public PackageOrTypeNameContext packageOrTypeName() { + return getRuleContext(PackageOrTypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeImportOnDemandDeclaration(this); + } + } + + public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { + TypeImportOnDemandDeclarationContext _localctx = new TypeImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_typeImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(752); + match(IMPORT); + setState(753); + packageOrTypeName(0); + setState(754); + match(DOT); + setState(755); + match(MUL); + setState(756); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleStaticImportDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSingleStaticImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSingleStaticImportDeclaration(this); + } + } + + public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { + SingleStaticImportDeclarationContext _localctx = new SingleStaticImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_singleStaticImportDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(758); + match(IMPORT); + setState(759); + match(STATIC); + setState(760); + typeName(); + setState(761); + match(DOT); + setState(762); + match(Identifier); + setState(763); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StaticImportOnDemandDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java8Parser.IMPORT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStaticImportOnDemandDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStaticImportOnDemandDeclaration(this); + } + } + + public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { + StaticImportOnDemandDeclarationContext _localctx = new StaticImportOnDemandDeclarationContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_staticImportOnDemandDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(765); + match(IMPORT); + setState(766); + match(STATIC); + setState(767); + typeName(); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeDeclarationContext extends ParserRuleContext { + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeDeclaration(this); + } + } + + public final TypeDeclarationContext typeDeclaration() throws RecognitionException { + TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_typeDeclaration); + try { + setState(775); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(772); + classDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(773); + interfaceDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(774); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassDeclaration(this); + } + } + + public final ClassDeclarationContext classDeclaration() throws RecognitionException { + ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_classDeclaration); + try { + setState(779); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(777); + normalClassDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(778); + enumDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalClassDeclarationContext extends ParserRuleContext { + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterNormalClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitNormalClassDeclaration(this); + } + } + + public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { + NormalClassDeclarationContext _localctx = new NormalClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_normalClassDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(784); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763525122L) != 0) || _la==AT) { + { + { + setState(781); + classModifier(); + } + } + setState(786); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(787); + match(CLASS); + setState(788); + match(Identifier); + setState(790); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(789); + typeParameters(); + } + } + + setState(793); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(792); + superclass(); + } + } + + setState(796); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(795); + superinterfaces(); + } + } + + setState(798); + classBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassModifier(this); + } + } + + public final ClassModifierContext classModifier() throws RecognitionException { + ClassModifierContext _localctx = new ClassModifierContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_classModifier); + try { + setState(808); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(800); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(801); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(802); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(803); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(804); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(805); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(806); + match(FINAL); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 8); + { + setState(807); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParametersContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TypeParameterListContext typeParameterList() { + return getRuleContext(TypeParameterListContext.class,0); + } + public TerminalNode GT() { return getToken(Java8Parser.GT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeParameters(this); + } + } + + public final TypeParametersContext typeParameters() throws RecognitionException { + TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_typeParameters); + try { + enterOuterAlt(_localctx, 1); + { + setState(810); + match(LT); + setState(811); + typeParameterList(); + setState(812); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParameterListContext extends ParserRuleContext { + public List typeParameter() { + return getRuleContexts(TypeParameterContext.class); + } + public TypeParameterContext typeParameter(int i) { + return getRuleContext(TypeParameterContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeParameterList(this); + } + } + + public final TypeParameterListContext typeParameterList() throws RecognitionException { + TypeParameterListContext _localctx = new TypeParameterListContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_typeParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(814); + typeParameter(); + setState(819); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(815); + match(COMMA); + setState(816); + typeParameter(); + } + } + setState(821); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperclassContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSuperclass(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSuperclass(this); + } + } + + public final SuperclassContext superclass() throws RecognitionException { + SuperclassContext _localctx = new SuperclassContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_superclass); + try { + enterOuterAlt(_localctx, 1); + { + setState(822); + match(EXTENDS); + setState(823); + classType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperinterfacesContext extends ParserRuleContext { + public TerminalNode IMPLEMENTS() { return getToken(Java8Parser.IMPLEMENTS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSuperinterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSuperinterfaces(this); + } + } + + public final SuperinterfacesContext superinterfaces() throws RecognitionException { + SuperinterfacesContext _localctx = new SuperinterfacesContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_superinterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(825); + match(IMPLEMENTS); + setState(826); + interfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceTypeListContext extends ParserRuleContext { + public List interfaceType() { + return getRuleContexts(InterfaceTypeContext.class); + } + public InterfaceTypeContext interfaceType(int i) { + return getRuleContext(InterfaceTypeContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceTypeList(this); + } + } + + public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { + InterfaceTypeListContext _localctx = new InterfaceTypeListContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_interfaceTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(828); + interfaceType(); + setState(833); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(829); + match(COMMA); + setState(830); + interfaceType(); + } + } + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassBody(this); + } + } + + public final ClassBodyContext classBody() throws RecognitionException { + ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_classBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(836); + match(LBRACE); + setState(840); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8645991068613655766L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(837); + classBodyDeclaration(); + } + } + setState(842); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(843); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 ConstructorDeclarationContext constructorDeclaration() { + return getRuleContext(ConstructorDeclarationContext.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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassBodyDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassBodyDeclaration(this); + } + } + + public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { + ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_classBodyDeclaration); + try { + setState(849); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(845); + classMemberDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(846); + instanceInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(847); + staticInitializer(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(848); + constructorDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassMemberDeclaration(this); + } + } + + public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { + ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_classMemberDeclaration); + try { + setState(856); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(851); + fieldDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(852); + methodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(853); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(854); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(855); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public List fieldModifier() { + return getRuleContexts(FieldModifierContext.class); + } + public FieldModifierContext fieldModifier(int i) { + return getRuleContext(FieldModifierContext.class,i); + } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFieldDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFieldDeclaration(this); + } + } + + public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { + FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_fieldDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(861); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 633653705310208L) != 0) || _la==AT) { + { + { + setState(858); + fieldModifier(); + } + } + setState(863); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(864); + unannType(); + setState(865); + variableDeclaratorList(); + setState(866); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode TRANSIENT() { return getToken(Java8Parser.TRANSIENT, 0); } + public TerminalNode VOLATILE() { return getToken(Java8Parser.VOLATILE, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFieldModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFieldModifier(this); + } + } + + public final FieldModifierContext fieldModifier() throws RecognitionException { + FieldModifierContext _localctx = new FieldModifierContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_fieldModifier); + try { + setState(876); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(868); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(869); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(870); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(871); + match(PRIVATE); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(872); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 6); + { + setState(873); + match(FINAL); + } + break; + case TRANSIENT: + enterOuterAlt(_localctx, 7); + { + setState(874); + match(TRANSIENT); + } + break; + case VOLATILE: + enterOuterAlt(_localctx, 8); + { + setState(875); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorListContext extends ParserRuleContext { + public List variableDeclarator() { + return getRuleContexts(VariableDeclaratorContext.class); + } + public VariableDeclaratorContext variableDeclarator(int i) { + return getRuleContext(VariableDeclaratorContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableDeclaratorList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableDeclaratorList(this); + } + } + + public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { + VariableDeclaratorListContext _localctx = new VariableDeclaratorListContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_variableDeclaratorList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(878); + variableDeclarator(); + setState(883); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(879); + match(COMMA); + setState(880); + variableDeclarator(); + } + } + setState(885); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorContext extends ParserRuleContext { + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableDeclarator(this); + } + } + + public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { + VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_variableDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(886); + variableDeclaratorId(); + setState(889); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGN) { + { + setState(887); + match(ASSIGN); + setState(888); + variableInitializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableDeclaratorId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableDeclaratorId(this); + } + } + + public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { + VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_variableDeclaratorId); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(891); + match(Identifier); + setState(893); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(892); + dims(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableInitializer(this); + } + } + + public final VariableInitializerContext variableInitializer() throws RecognitionException { + VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_variableInitializer); + try { + setState(897); + _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(895); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(896); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannType(this); + } + } + + public final UnannTypeContext unannType() throws RecognitionException { + UnannTypeContext _localctx = new UnannTypeContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_unannType); + try { + setState(901); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(899); + unannPrimitiveType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(900); + unannReferenceType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnannPrimitiveTypeContext extends ParserRuleContext { + public NumericTypeContext numericType() { + return getRuleContext(NumericTypeContext.class,0); + } + public TerminalNode BOOLEAN() { return getToken(Java8Parser.BOOLEAN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannPrimitiveType(this); + } + } + + public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { + UnannPrimitiveTypeContext _localctx = new UnannPrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_unannPrimitiveType); + try { + setState(905); + _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(903); + numericType(); + } + break; + case BOOLEAN: + enterOuterAlt(_localctx, 2); + { + setState(904); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannReferenceType(this); + } + } + + public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { + UnannReferenceTypeContext _localctx = new UnannReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_unannReferenceType); + try { + setState(910); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(907); + unannClassOrInterfaceType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(908); + unannTypeVariable(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(909); + unannArrayType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannClassOrInterfaceType(this); + } + } + + public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { + UnannClassOrInterfaceTypeContext _localctx = new UnannClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_unannClassOrInterfaceType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(914); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { + case 1: + { + setState(912); + unannClassType_lfno_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(913); + unannInterfaceType_lfno_unannClassOrInterfaceType(); + } + break; + } + setState(920); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(918); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { + case 1: + { + setState(916); + unannClassType_lf_unannClassOrInterfaceType(); + } + break; + case 2: + { + setState(917); + unannInterfaceType_lf_unannClassOrInterfaceType(); + } + break; + } + } + } + setState(922); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannClassType(this); + } + } + + public final UnannClassTypeContext unannClassType() throws RecognitionException { + UnannClassTypeContext _localctx = new UnannClassTypeContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_unannClassType); + int _la; + try { + setState(939); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(923); + match(Identifier); + setState(925); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(924); + typeArguments(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(927); + unannClassOrInterfaceType(); + setState(928); + match(DOT); + setState(932); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(929); + annotation(); + } + } + setState(934); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(935); + match(Identifier); + setState(937); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(936); + typeArguments(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnannClassType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannClassType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 124, RULE_unannClassType_lf_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(941); + match(DOT); + setState(945); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(942); + annotation(); + } + } + setState(947); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(948); + match(Identifier); + setState(950); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(949); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannClassType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 126, RULE_unannClassType_lfno_unannClassOrInterfaceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(952); + match(Identifier); + setState(954); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(953); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannInterfaceType(this); + } + } + + public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { + UnannInterfaceTypeContext _localctx = new UnannInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_unannInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(956); + unannClassType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannInterfaceType_lf_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 130, RULE_unannInterfaceType_lf_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(958); + unannClassType_lf_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannInterfaceType_lfno_unannClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 132, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType); + try { + enterOuterAlt(_localctx, 1); + { + setState(960); + unannClassType_lfno_unannClassOrInterfaceType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannTypeVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannTypeVariable(this); + } + } + + public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { + UnannTypeVariableContext _localctx = new UnannTypeVariableContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_unannTypeVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(962); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnannArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnannArrayType(this); + } + } + + public final UnannArrayTypeContext unannArrayType() throws RecognitionException { + UnannArrayTypeContext _localctx = new UnannArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_unannArrayType); + try { + setState(973); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(964); + unannPrimitiveType(); + setState(965); + dims(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(967); + unannClassOrInterfaceType(); + setState(968); + dims(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(970); + unannTypeVariable(); + setState(971); + dims(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodDeclaration(this); + } + } + + public final MethodDeclarationContext methodDeclaration() throws RecognitionException { + MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_methodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 5283883778050L) != 0) || _la==AT) { + { + { + setState(975); + methodModifier(); + } + } + setState(980); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(981); + methodHeader(); + setState(982); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 0); } + public TerminalNode SYNCHRONIZED() { return getToken(Java8Parser.SYNCHRONIZED, 0); } + public TerminalNode NATIVE() { return getToken(Java8Parser.NATIVE, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodModifier(this); + } + } + + public final MethodModifierContext methodModifier() throws RecognitionException { + MethodModifierContext _localctx = new MethodModifierContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_methodModifier); + try { + setState(994); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(984); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(985); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(986); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(987); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(988); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(989); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 7); + { + setState(990); + match(FINAL); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 8); + { + setState(991); + match(SYNCHRONIZED); + } + break; + case NATIVE: + enterOuterAlt(_localctx, 9); + { + setState(992); + match(NATIVE); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 10); + { + setState(993); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodHeaderContext extends ParserRuleContext { + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public MethodDeclaratorContext methodDeclarator() { + return getRuleContext(MethodDeclaratorContext.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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodHeader(this); + } + } + + public final MethodHeaderContext methodHeader() throws RecognitionException { + MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_methodHeader); + int _la; + try { + setState(1013); + _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(996); + result(); + setState(997); + methodDeclarator(); + setState(999); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(998); + throws_(); + } + } + + } + break; + case LT: + enterOuterAlt(_localctx, 2); + { + setState(1001); + typeParameters(); + setState(1005); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1002); + annotation(); + } + } + setState(1007); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1008); + result(); + setState(1009); + methodDeclarator(); + setState(1011); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1010); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResultContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterResult(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitResult(this); + } + } + + public final ResultContext result() throws RecognitionException { + ResultContext _localctx = new ResultContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_result); + try { + setState(1017); + _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(1015); + unannType(); + } + break; + case VOID: + enterOuterAlt(_localctx, 2); + { + setState(1016); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodDeclaratorContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodDeclarator(this); + } + } + + public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { + MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_methodDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1019); + match(Identifier); + setState(1020); + match(LPAREN); + setState(1022); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(1021); + formalParameterList(); + } + } + + setState(1024); + match(RPAREN); + setState(1026); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1025); + dims(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterListContext extends ParserRuleContext { + public ReceiverParameterContext receiverParameter() { + return getRuleContext(ReceiverParameterContext.class,0); + } + public FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFormalParameterList(this); + } + } + + public final FormalParameterListContext formalParameterList() throws RecognitionException { + FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_formalParameterList); + try { + setState(1034); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,82,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1028); + receiverParameter(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1029); + formalParameters(); + setState(1030); + match(COMMA); + setState(1031); + lastFormalParameter(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1033); + lastFormalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParametersContext extends ParserRuleContext { + public List formalParameter() { + return getRuleContexts(FormalParameterContext.class); + } + public FormalParameterContext formalParameter(int i) { + return getRuleContext(FormalParameterContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFormalParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFormalParameters(this); + } + } + + public final FormalParametersContext formalParameters() throws RecognitionException { + FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_formalParameters); + try { + int _alt; + setState(1052); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,85,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1036); + formalParameter(); + setState(1041); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,83,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1037); + match(COMMA); + setState(1038); + formalParameter(); + } + } + } + setState(1043); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,83,_ctx); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1044); + receiverParameter(); + setState(1049); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,84,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1045); + match(COMMA); + setState(1046); + formalParameter(); + } + } + } + setState(1051); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,84,_ctx); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterContext 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 FormalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).enterFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFormalParameter(this); + } + } + + public final FormalParameterContext formalParameter() throws RecognitionException { + FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_formalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1057); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1054); + variableModifier(); + } + } + setState(1059); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1060); + unannType(); + setState(1061); + variableDeclaratorId(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableModifier(this); + } + } + + public final VariableModifierContext variableModifier() throws RecognitionException { + VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_variableModifier); + try { + setState(1065); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1063); + annotation(); + } + break; + case FINAL: + enterOuterAlt(_localctx, 2); + { + setState(1064); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class LastFormalParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode ELLIPSIS() { return getToken(Java8Parser.ELLIPSIS, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLastFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLastFormalParameter(this); + } + } + + public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { + LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_lastFormalParameter); + int _la; + try { + setState(1084); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1070); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1067); + variableModifier(); + } + } + setState(1072); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1073); + unannType(); + setState(1077); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1074); + annotation(); + } + } + setState(1079); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1080); + match(ELLIPSIS); + setState(1081); + variableDeclaratorId(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1083); + formalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReceiverParameterContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterReceiverParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitReceiverParameter(this); + } + } + + public final ReceiverParameterContext receiverParameter() throws RecognitionException { + ReceiverParameterContext _localctx = new ReceiverParameterContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_receiverParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1089); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1086); + annotation(); + } + } + setState(1091); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1092); + unannType(); + setState(1095); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1093); + match(Identifier); + setState(1094); + match(DOT); + } + } + + setState(1097); + match(THIS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class Throws_Context extends ParserRuleContext { + public TerminalNode THROWS() { return getToken(Java8Parser.THROWS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterThrows_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitThrows_(this); + } + } + + public final Throws_Context throws_() throws RecognitionException { + Throws_Context _localctx = new Throws_Context(_ctx, getState()); + enterRule(_localctx, 160, RULE_throws_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1099); + match(THROWS); + setState(1100); + exceptionTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExceptionTypeListContext extends ParserRuleContext { + public List exceptionType() { + return getRuleContexts(ExceptionTypeContext.class); + } + public ExceptionTypeContext exceptionType(int i) { + return getRuleContext(ExceptionTypeContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExceptionTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExceptionTypeList(this); + } + } + + public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { + ExceptionTypeListContext _localctx = new ExceptionTypeListContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_exceptionTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1102); + exceptionType(); + setState(1107); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1103); + match(COMMA); + setState(1104); + exceptionType(); + } + } + setState(1109); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExceptionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExceptionType(this); + } + } + + public final ExceptionTypeContext exceptionType() throws RecognitionException { + ExceptionTypeContext _localctx = new ExceptionTypeContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_exceptionType); + try { + setState(1112); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,94,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1110); + classType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1111); + typeVariable(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodBodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodBody(this); + } + } + + public final MethodBodyContext methodBody() throws RecognitionException { + MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_methodBody); + try { + setState(1116); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1114); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1115); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInstanceInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInstanceInitializer(this); + } + } + + public final InstanceInitializerContext instanceInitializer() throws RecognitionException { + InstanceInitializerContext _localctx = new InstanceInitializerContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_instanceInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1118); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StaticInitializerContext extends ParserRuleContext { + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStaticInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStaticInitializer(this); + } + } + + public final StaticInitializerContext staticInitializer() throws RecognitionException { + StaticInitializerContext _localctx = new StaticInitializerContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_staticInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1120); + match(STATIC); + setState(1121); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstructorDeclaration(this); + } + } + + public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { + ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_constructorDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1126); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 60129542144L) != 0) || _la==AT) { + { + { + setState(1123); + constructorModifier(); + } + } + setState(1128); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1129); + constructorDeclarator(); + setState(1131); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(1130); + throws_(); + } + } + + setState(1133); + constructorBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstructorModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstructorModifier(this); + } + } + + public final ConstructorModifierContext constructorModifier() throws RecognitionException { + ConstructorModifierContext _localctx = new ConstructorModifierContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_constructorModifier); + try { + setState(1139); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1135); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1136); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1137); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1138); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorDeclaratorContext extends ParserRuleContext { + public SimpleTypeNameContext simpleTypeName() { + return getRuleContext(SimpleTypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstructorDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstructorDeclarator(this); + } + } + + public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { + ConstructorDeclaratorContext _localctx = new ConstructorDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_constructorDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1142); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1141); + typeParameters(); + } + } + + setState(1144); + simpleTypeName(); + setState(1145); + match(LPAREN); + setState(1147); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(1146); + formalParameterList(); + } + } + + setState(1149); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSimpleTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSimpleTypeName(this); + } + } + + public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { + SimpleTypeNameContext _localctx = new SimpleTypeNameContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_simpleTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1151); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstructorBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstructorBody(this); + } + } + + public final ConstructorBodyContext constructorBody() throws RecognitionException { + ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_constructorBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1153); + match(LBRACE); + setState(1155); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,101,_ctx) ) { + case 1: + { + setState(1154); + explicitConstructorInvocation(); + } + break; + } + setState(1158); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1157); + blockStatements(); + } + } + + setState(1160); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExplicitConstructorInvocationContext extends ParserRuleContext { + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExplicitConstructorInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExplicitConstructorInvocation(this); + } + } + + public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { + ExplicitConstructorInvocationContext _localctx = new ExplicitConstructorInvocationContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_explicitConstructorInvocation); + int _la; + try { + setState(1208); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1163); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1162); + typeArguments(); + } + } + + setState(1165); + match(THIS); + setState(1166); + match(LPAREN); + setState(1168); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1167); + argumentList(); + } + } + + setState(1170); + match(RPAREN); + setState(1171); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1173); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1172); + typeArguments(); + } + } + + setState(1175); + match(SUPER); + setState(1176); + match(LPAREN); + setState(1178); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1177); + argumentList(); + } + } + + setState(1180); + match(RPAREN); + setState(1181); + match(SEMI); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1182); + expressionName(); + setState(1183); + match(DOT); + setState(1185); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1184); + typeArguments(); + } + } + + setState(1187); + match(SUPER); + setState(1188); + match(LPAREN); + setState(1190); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1189); + argumentList(); + } + } + + setState(1192); + match(RPAREN); + setState(1193); + match(SEMI); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1195); + primary(); + setState(1196); + match(DOT); + setState(1198); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1197); + typeArguments(); + } + } + + setState(1200); + match(SUPER); + setState(1201); + match(LPAREN); + setState(1203); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1202); + argumentList(); + } + } + + setState(1205); + match(RPAREN); + setState(1206); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumDeclarationContext extends ParserRuleContext { + public TerminalNode ENUM() { return getToken(Java8Parser.ENUM, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumDeclaration(this); + } + } + + public final EnumDeclarationContext enumDeclaration() throws RecognitionException { + EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_enumDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1213); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763525122L) != 0) || _la==AT) { + { + { + setState(1210); + classModifier(); + } + } + setState(1215); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1216); + match(ENUM); + setState(1217); + match(Identifier); + setState(1219); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(1218); + superinterfaces(); + } + } + + setState(1221); + enumBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public EnumConstantListContext enumConstantList() { + return getRuleContext(EnumConstantListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumBody(this); + } + } + + public final EnumBodyContext enumBody() throws RecognitionException { + EnumBodyContext _localctx = new EnumBodyContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_enumBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1223); + match(LBRACE); + setState(1225); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier || _la==AT) { + { + setState(1224); + enumConstantList(); + } + } + + setState(1228); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1227); + match(COMMA); + } + } + + setState(1231); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1230); + enumBodyDeclarations(); + } + } + + setState(1233); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumConstantListContext extends ParserRuleContext { + public List enumConstant() { + return getRuleContexts(EnumConstantContext.class); + } + public EnumConstantContext enumConstant(int i) { + return getRuleContext(EnumConstantContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumConstantList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumConstantList(this); + } + } + + public final EnumConstantListContext enumConstantList() throws RecognitionException { + EnumConstantListContext _localctx = new EnumConstantListContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_enumConstantList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1235); + enumConstant(); + setState(1240); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,117,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1236); + match(COMMA); + setState(1237); + enumConstant(); + } + } + } + setState(1242); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,117,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumConstant(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumConstant(this); + } + } + + public final EnumConstantContext enumConstant() throws RecognitionException { + EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_enumConstant); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1246); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(1243); + enumConstantModifier(); + } + } + setState(1248); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1249); + match(Identifier); + setState(1255); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LPAREN) { + { + setState(1250); + match(LPAREN); + setState(1252); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1251); + argumentList(); + } + } + + setState(1254); + match(RPAREN); + } + } + + setState(1258); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(1257); + classBody(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumConstantModifier(this); + } + } + + public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { + EnumConstantModifierContext _localctx = new EnumConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_enumConstantModifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(1260); + annotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyDeclarationsContext extends ParserRuleContext { + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumBodyDeclarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumBodyDeclarations(this); + } + } + + public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { + EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_enumBodyDeclarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1262); + match(SEMI); + setState(1266); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8645991068613655766L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(1263); + classBodyDeclaration(); + } + } + setState(1268); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceDeclaration(this); + } + } + + public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { + InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_interfaceDeclaration); + try { + setState(1271); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1269); + normalInterfaceDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1270); + annotationTypeDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalInterfaceDeclarationContext extends ParserRuleContext { + public TerminalNode INTERFACE() { return getToken(Java8Parser.INTERFACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterNormalInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitNormalInterfaceDeclaration(this); + } + } + + public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { + NormalInterfaceDeclarationContext _localctx = new NormalInterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_normalInterfaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1276); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 884763262978L) != 0) || _la==AT) { + { + { + setState(1273); + interfaceModifier(); + } + } + setState(1278); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1279); + match(INTERFACE); + setState(1280); + match(Identifier); + setState(1282); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1281); + typeParameters(); + } + } + + setState(1285); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(1284); + extendsInterfaces(); + } + } + + setState(1287); + interfaceBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java8Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java8Parser.PRIVATE, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceModifier(this); + } + } + + public final InterfaceModifierContext interfaceModifier() throws RecognitionException { + InterfaceModifierContext _localctx = new InterfaceModifierContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_interfaceModifier); + try { + setState(1296); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1289); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1290); + match(PUBLIC); + } + break; + case PROTECTED: + enterOuterAlt(_localctx, 3); + { + setState(1291); + match(PROTECTED); + } + break; + case PRIVATE: + enterOuterAlt(_localctx, 4); + { + setState(1292); + match(PRIVATE); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 5); + { + setState(1293); + match(ABSTRACT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 6); + { + setState(1294); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 7); + { + setState(1295); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExtendsInterfacesContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java8Parser.EXTENDS, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExtendsInterfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExtendsInterfaces(this); + } + } + + public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { + ExtendsInterfacesContext _localctx = new ExtendsInterfacesContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_extendsInterfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(1298); + match(EXTENDS); + setState(1299); + interfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceBody(this); + } + } + + public final InterfaceBodyContext interfaceBody() throws RecognitionException { + InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_interfaceBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1301); + match(LBRACE); + setState(1305); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223089538734927062L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & 51539607553L) != 0)) { + { + { + setState(1302); + interfaceMemberDeclaration(); + } + } + setState(1307); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1308); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceMemberDeclaration(this); + } + } + + public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { + InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_interfaceMemberDeclaration); + try { + setState(1315); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1310); + constantDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1311); + interfaceMethodDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1312); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1313); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1314); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstantDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorListContext variableDeclaratorList() { + return getRuleContext(VariableDeclaratorListContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstantDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstantDeclaration(this); + } + } + + public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { + ConstantDeclarationContext _localctx = new ConstantDeclarationContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_constantDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1320); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 309237907456L) != 0) || _la==AT) { + { + { + setState(1317); + constantModifier(); + } + } + setState(1322); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1323); + unannType(); + setState(1324); + variableDeclaratorList(); + setState(1325); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstantModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode FINAL() { return getToken(Java8Parser.FINAL, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstantModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstantModifier(this); + } + } + + public final ConstantModifierContext constantModifier() throws RecognitionException { + ConstantModifierContext _localctx = new ConstantModifierContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_constantModifier); + try { + setState(1331); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1327); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1328); + match(PUBLIC); + } + break; + case STATIC: + enterOuterAlt(_localctx, 3); + { + setState(1329); + match(STATIC); + } + break; + case FINAL: + enterOuterAlt(_localctx, 4); + { + setState(1330); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceMethodDeclaration(this); + } + } + + public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { + InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_interfaceMethodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1336); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 858993463298L) != 0) || _la==AT) { + { + { + setState(1333); + interfaceMethodModifier(); + } + } + setState(1338); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1339); + methodHeader(); + setState(1340); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceMethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 0); } + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 0); } + public TerminalNode STATIC() { return getToken(Java8Parser.STATIC, 0); } + public TerminalNode STRICTFP() { return getToken(Java8Parser.STRICTFP, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInterfaceMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInterfaceMethodModifier(this); + } + } + + public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { + InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_interfaceMethodModifier); + try { + setState(1348); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1342); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1343); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1344); + match(ABSTRACT); + } + break; + case DEFAULT: + enterOuterAlt(_localctx, 4); + { + setState(1345); + match(DEFAULT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(1346); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 6); + { + setState(1347); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeDeclarationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TerminalNode INTERFACE() { return getToken(Java8Parser.INTERFACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotationTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotationTypeDeclaration(this); + } + } + + public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { + AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_annotationTypeDeclaration); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1353); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,134,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1350); + interfaceModifier(); + } + } + } + setState(1355); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,134,_ctx); + } + setState(1356); + match(AT); + setState(1357); + match(INTERFACE); + setState(1358); + match(Identifier); + setState(1359); + annotationTypeBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotationTypeBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotationTypeBody(this); + } + } + + public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { + AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_annotationTypeBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1361); + match(LBRACE); + setState(1365); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -9223371013711641814L) != 0) || _la==Identifier || _la==AT) { + { + { + setState(1362); + annotationTypeMemberDeclaration(); + } + } + setState(1367); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1368); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotationTypeMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotationTypeMemberDeclaration(this); + } + } + + public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { + AnnotationTypeMemberDeclarationContext _localctx = new AnnotationTypeMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_annotationTypeMemberDeclaration); + try { + setState(1375); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1370); + annotationTypeElementDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1371); + constantDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1372); + classDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1373); + interfaceDeclaration(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1374); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotationTypeElementDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotationTypeElementDeclaration(this); + } + } + + public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { + AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_annotationTypeElementDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1380); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==ABSTRACT || _la==PUBLIC || _la==AT) { + { + { + setState(1377); + annotationTypeElementModifier(); + } + } + setState(1382); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1383); + unannType(); + setState(1384); + match(Identifier); + setState(1385); + match(LPAREN); + setState(1386); + match(RPAREN); + setState(1388); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACK || _la==AT) { + { + setState(1387); + dims(); + } + } + + setState(1391); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(1390); + defaultValue(); + } + } + + setState(1393); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java8Parser.PUBLIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java8Parser.ABSTRACT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotationTypeElementModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotationTypeElementModifier(this); + } + } + + public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { + AnnotationTypeElementModifierContext _localctx = new AnnotationTypeElementModifierContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_annotationTypeElementModifier); + try { + setState(1398); + _errHandler.sync(this); + switch (_input.LA(1)) { + case AT: + enterOuterAlt(_localctx, 1); + { + setState(1395); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(1396); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(1397); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class DefaultValueContext extends ParserRuleContext { + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterDefaultValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitDefaultValue(this); + } + } + + public final DefaultValueContext defaultValue() throws RecognitionException { + DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_defaultValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(1400); + match(DEFAULT); + setState(1401); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAnnotation(this); + } + } + + public final AnnotationContext annotation() throws RecognitionException { + AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_annotation); + try { + setState(1406); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1403); + normalAnnotation(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1404); + markerAnnotation(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1405); + singleElementAnnotation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterNormalAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitNormalAnnotation(this); + } + } + + public final NormalAnnotationContext normalAnnotation() throws RecognitionException { + NormalAnnotationContext _localctx = new NormalAnnotationContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_normalAnnotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1408); + match(AT); + setState(1409); + typeName(); + setState(1410); + match(LPAREN); + setState(1412); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1411); + elementValuePairList(); + } + } + + setState(1414); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairListContext extends ParserRuleContext { + public List elementValuePair() { + return getRuleContexts(ElementValuePairContext.class); + } + public ElementValuePairContext elementValuePair(int i) { + return getRuleContext(ElementValuePairContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterElementValuePairList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitElementValuePairList(this); + } + } + + public final ElementValuePairListContext elementValuePairList() throws RecognitionException { + ElementValuePairListContext _localctx = new ElementValuePairListContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_elementValuePairList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1416); + elementValuePair(); + setState(1421); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1417); + match(COMMA); + setState(1418); + elementValuePair(); + } + } + setState(1423); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterElementValuePair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitElementValuePair(this); + } + } + + public final ElementValuePairContext elementValuePair() throws RecognitionException { + ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_elementValuePair); + try { + enterOuterAlt(_localctx, 1); + { + setState(1424); + match(Identifier); + setState(1425); + match(ASSIGN); + setState(1426); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterElementValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitElementValue(this); + } + } + + public final ElementValueContext elementValue() throws RecognitionException { + ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_elementValue); + try { + setState(1431); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1428); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1429); + elementValueArrayInitializer(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1430); + annotation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public ElementValueListContext elementValueList() { + return getRuleContext(ElementValueListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterElementValueArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitElementValueArrayInitializer(this); + } + } + + public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { + ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_elementValueArrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1433); + match(LBRACE); + setState(1435); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 862730839481401640L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1434); + elementValueList(); + } + } + + setState(1438); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1437); + match(COMMA); + } + } + + setState(1440); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueListContext extends ParserRuleContext { + public List elementValue() { + return getRuleContexts(ElementValueContext.class); + } + public ElementValueContext elementValue(int i) { + return getRuleContext(ElementValueContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterElementValueList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitElementValueList(this); + } + } + + public final ElementValueListContext elementValueList() throws RecognitionException { + ElementValueListContext _localctx = new ElementValueListContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_elementValueList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1442); + elementValue(); + setState(1447); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1443); + match(COMMA); + setState(1444); + elementValue(); + } + } + } + setState(1449); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MarkerAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMarkerAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMarkerAnnotation(this); + } + } + + public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { + MarkerAnnotationContext _localctx = new MarkerAnnotationContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_markerAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1450); + match(AT); + setState(1451); + typeName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleElementAnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java8Parser.AT, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSingleElementAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSingleElementAnnotation(this); + } + } + + public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { + SingleElementAnnotationContext _localctx = new SingleElementAnnotationContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_singleElementAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1453); + match(AT); + setState(1454); + typeName(); + setState(1455); + match(LPAREN); + setState(1456); + elementValue(); + setState(1457); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + public VariableInitializerListContext variableInitializerList() { + return getRuleContext(VariableInitializerListContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitArrayInitializer(this); + } + } + + public final ArrayInitializerContext arrayInitializer() throws RecognitionException { + ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_arrayInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1459); + match(LBRACE); + setState(1461); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 862730839481401640L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1460); + variableInitializerList(); + } + } + + setState(1464); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1463); + match(COMMA); + } + } + + setState(1466); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableInitializerListContext extends ParserRuleContext { + public List variableInitializer() { + return getRuleContexts(VariableInitializerContext.class); + } + public VariableInitializerContext variableInitializer(int i) { + return getRuleContext(VariableInitializerContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterVariableInitializerList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitVariableInitializerList(this); + } + } + + public final VariableInitializerListContext variableInitializerList() throws RecognitionException { + VariableInitializerListContext _localctx = new VariableInitializerListContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_variableInitializerList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1468); + variableInitializer(); + setState(1473); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,150,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1469); + match(COMMA); + setState(1470); + variableInitializer(); + } + } + } + setState(1475); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,150,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlockContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBlock(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1476); + match(LBRACE); + setState(1478); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1477); + blockStatements(); + } + } + + setState(1480); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBlockStatements(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBlockStatements(this); + } + } + + public final BlockStatementsContext blockStatements() throws RecognitionException { + BlockStatementsContext _localctx = new BlockStatementsContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_blockStatements); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1483); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1482); + blockStatement(); + } + } + setState(1485); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & -8359349417232995522L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBlockStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBlockStatement(this); + } + } + + public final BlockStatementContext blockStatement() throws RecognitionException { + BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_blockStatement); + try { + setState(1490); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1487); + localVariableDeclarationStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1488); + classDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1489); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalVariableDeclarationStatementContext extends ParserRuleContext { + public LocalVariableDeclarationContext localVariableDeclaration() { + return getRuleContext(LocalVariableDeclarationContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLocalVariableDeclarationStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLocalVariableDeclarationStatement(this); + } + } + + public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { + LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_localVariableDeclarationStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1492); + localVariableDeclaration(); + setState(1493); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalVariableDeclarationContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.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 Java8ParserListener ) ((Java8ParserListener)listener).enterLocalVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLocalVariableDeclaration(this); + } + } + + public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { + LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_localVariableDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1495); + variableModifier(); + } + } + setState(1500); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1501); + unannType(); + setState(1502); + variableDeclaratorList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStatement(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_statement); + try { + setState(1510); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,155,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1504); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1505); + labeledStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1506); + ifThenStatement(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1507); + ifThenElseStatement(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1508); + whileStatement(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1509); + forStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStatementNoShortIf(this); + } + } + + public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { + StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_statementNoShortIf); + try { + setState(1517); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1512); + statementWithoutTrailingSubstatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1513); + labeledStatementNoShortIf(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1514); + ifThenElseStatementNoShortIf(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1515); + whileStatementNoShortIf(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1516); + forStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementWithoutTrailingSubstatementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public EmptyStatement_Context emptyStatement_() { + return getRuleContext(EmptyStatement_Context.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 Java8ParserListener ) ((Java8ParserListener)listener).enterStatementWithoutTrailingSubstatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStatementWithoutTrailingSubstatement(this); + } + } + + public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { + StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_statementWithoutTrailingSubstatement); + try { + setState(1531); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1519); + block(); + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1520); + 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(1521); + expressionStatement(); + } + break; + case ASSERT: + enterOuterAlt(_localctx, 4); + { + setState(1522); + assertStatement(); + } + break; + case SWITCH: + enterOuterAlt(_localctx, 5); + { + setState(1523); + switchStatement(); + } + break; + case DO: + enterOuterAlt(_localctx, 6); + { + setState(1524); + doStatement(); + } + break; + case BREAK: + enterOuterAlt(_localctx, 7); + { + setState(1525); + breakStatement(); + } + break; + case CONTINUE: + enterOuterAlt(_localctx, 8); + { + setState(1526); + continueStatement(); + } + break; + case RETURN: + enterOuterAlt(_localctx, 9); + { + setState(1527); + returnStatement(); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 10); + { + setState(1528); + synchronizedStatement(); + } + break; + case THROW: + enterOuterAlt(_localctx, 11); + { + setState(1529); + throwStatement(); + } + break; + case TRY: + enterOuterAlt(_localctx, 12); + { + setState(1530); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EmptyStatement_Context extends ParserRuleContext { + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public EmptyStatement_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyStatement_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).enterEmptyStatement_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEmptyStatement_(this); + } + } + + public final EmptyStatement_Context emptyStatement_() throws RecognitionException { + EmptyStatement_Context _localctx = new EmptyStatement_Context(_ctx, getState()); + enterRule(_localctx, 266, RULE_emptyStatement_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1533); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledStatementContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLabeledStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLabeledStatement(this); + } + } + + public final LabeledStatementContext labeledStatement() throws RecognitionException { + LabeledStatementContext _localctx = new LabeledStatementContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_labeledStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1535); + match(Identifier); + setState(1536); + match(COLON); + setState(1537); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLabeledStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLabeledStatementNoShortIf(this); + } + } + + public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { + LabeledStatementNoShortIfContext _localctx = new LabeledStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_labeledStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1539); + match(Identifier); + setState(1540); + match(COLON); + setState(1541); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionStatementContext extends ParserRuleContext { + public StatementExpressionContext statementExpression() { + return getRuleContext(StatementExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExpressionStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExpressionStatement(this); + } + } + + public final ExpressionStatementContext expressionStatement() throws RecognitionException { + ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_expressionStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1543); + statementExpression(); + setState(1544); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStatementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStatementExpression(this); + } + } + + public final StatementExpressionContext statementExpression() throws RecognitionException { + StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_statementExpression); + try { + setState(1553); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1546); + assignment(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1547); + preIncrementExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1548); + preDecrementExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1549); + postIncrementExpression(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1550); + postDecrementExpression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1551); + methodInvocation(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1552); + classInstanceCreationExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenStatementContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterIfThenStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitIfThenStatement(this); + } + } + + public final IfThenStatementContext ifThenStatement() throws RecognitionException { + IfThenStatementContext _localctx = new IfThenStatementContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_ifThenStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1555); + match(IF); + setState(1556); + match(LPAREN); + setState(1557); + expression(); + setState(1558); + match(RPAREN); + setState(1559); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenElseStatementContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public StatementNoShortIfContext statementNoShortIf() { + return getRuleContext(StatementNoShortIfContext.class,0); + } + public TerminalNode ELSE() { return getToken(Java8Parser.ELSE, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterIfThenElseStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitIfThenElseStatement(this); + } + } + + public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { + IfThenElseStatementContext _localctx = new IfThenElseStatementContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_ifThenElseStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1561); + match(IF); + setState(1562); + match(LPAREN); + setState(1563); + expression(); + setState(1564); + match(RPAREN); + setState(1565); + statementNoShortIf(); + setState(1566); + match(ELSE); + setState(1567); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfThenElseStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode IF() { return getToken(Java8Parser.IF, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public List statementNoShortIf() { + return getRuleContexts(StatementNoShortIfContext.class); + } + public StatementNoShortIfContext statementNoShortIf(int i) { + return getRuleContext(StatementNoShortIfContext.class,i); + } + public TerminalNode ELSE() { return getToken(Java8Parser.ELSE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterIfThenElseStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitIfThenElseStatementNoShortIf(this); + } + } + + public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { + IfThenElseStatementNoShortIfContext _localctx = new IfThenElseStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_ifThenElseStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1569); + match(IF); + setState(1570); + match(LPAREN); + setState(1571); + expression(); + setState(1572); + match(RPAREN); + setState(1573); + statementNoShortIf(); + setState(1574); + match(ELSE); + setState(1575); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssertStatementContext extends ParserRuleContext { + public TerminalNode ASSERT() { return getToken(Java8Parser.ASSERT, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAssertStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAssertStatement(this); + } + } + + public final AssertStatementContext assertStatement() throws RecognitionException { + AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_assertStatement); + try { + setState(1587); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1577); + match(ASSERT); + setState(1578); + expression(); + setState(1579); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1581); + match(ASSERT); + setState(1582); + expression(); + setState(1583); + match(COLON); + setState(1584); + expression(); + setState(1585); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchStatementContext extends ParserRuleContext { + public TerminalNode SWITCH() { return getToken(Java8Parser.SWITCH, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSwitchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSwitchStatement(this); + } + } + + public final SwitchStatementContext switchStatement() throws RecognitionException { + SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_switchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1589); + match(SWITCH); + setState(1590); + match(LPAREN); + setState(1591); + expression(); + setState(1592); + match(RPAREN); + setState(1593); + switchBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchBlockContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java8Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java8Parser.RBRACE, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSwitchBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSwitchBlock(this); + } + } + + public final SwitchBlockContext switchBlock() throws RecognitionException { + SwitchBlockContext _localctx = new SwitchBlockContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_switchBlock); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1595); + match(LBRACE); + setState(1599); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1596); + switchBlockStatementGroup(); + } + } + } + setState(1601); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + } + setState(1605); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1602); + switchLabel(); + } + } + setState(1607); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1608); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSwitchBlockStatementGroup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSwitchBlockStatementGroup(this); + } + } + + public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { + SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_switchBlockStatementGroup); + try { + enterOuterAlt(_localctx, 1); + { + setState(1610); + switchLabels(); + setState(1611); + blockStatements(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSwitchLabels(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSwitchLabels(this); + } + } + + public final SwitchLabelsContext switchLabels() throws RecognitionException { + SwitchLabelsContext _localctx = new SwitchLabelsContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_switchLabels); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1613); + switchLabel(); + setState(1617); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1614); + switchLabel(); + } + } + setState(1619); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(Java8Parser.CASE, 0); } + public ConstantExpressionContext constantExpression() { + return getRuleContext(ConstantExpressionContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public EnumConstantNameContext enumConstantName() { + return getRuleContext(EnumConstantNameContext.class,0); + } + public TerminalNode DEFAULT() { return getToken(Java8Parser.DEFAULT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSwitchLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSwitchLabel(this); + } + } + + public final SwitchLabelContext switchLabel() throws RecognitionException { + SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_switchLabel); + try { + setState(1630); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1620); + match(CASE); + setState(1621); + constantExpression(); + setState(1622); + match(COLON); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1624); + match(CASE); + setState(1625); + enumConstantName(); + setState(1626); + match(COLON); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1628); + match(DEFAULT); + setState(1629); + match(COLON); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnumConstantName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnumConstantName(this); + } + } + + public final EnumConstantNameContext enumConstantName() throws RecognitionException { + EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_enumConstantName); + try { + enterOuterAlt(_localctx, 1); + { + setState(1632); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhileStatementContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterWhileStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitWhileStatement(this); + } + } + + public final WhileStatementContext whileStatement() throws RecognitionException { + WhileStatementContext _localctx = new WhileStatementContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_whileStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1634); + match(WHILE); + setState(1635); + match(LPAREN); + setState(1636); + expression(); + setState(1637); + match(RPAREN); + setState(1638); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhileStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterWhileStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitWhileStatementNoShortIf(this); + } + } + + public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { + WhileStatementNoShortIfContext _localctx = new WhileStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_whileStatementNoShortIf); + try { + enterOuterAlt(_localctx, 1); + { + setState(1640); + match(WHILE); + setState(1641); + match(LPAREN); + setState(1642); + expression(); + setState(1643); + match(RPAREN); + setState(1644); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DoStatementContext extends ParserRuleContext { + public TerminalNode DO() { return getToken(Java8Parser.DO, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode WHILE() { return getToken(Java8Parser.WHILE, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterDoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitDoStatement(this); + } + } + + public final DoStatementContext doStatement() throws RecognitionException { + DoStatementContext _localctx = new DoStatementContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_doStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1646); + match(DO); + setState(1647); + statement(); + setState(1648); + match(WHILE); + setState(1649); + match(LPAREN); + setState(1650); + expression(); + setState(1651); + match(RPAREN); + setState(1652); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitForStatement(this); + } + } + + public final ForStatementContext forStatement() throws RecognitionException { + ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_forStatement); + try { + setState(1656); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1654); + basicForStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1655); + enhancedForStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitForStatementNoShortIf(this); + } + } + + public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { + ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_forStatementNoShortIf); + try { + setState(1660); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1658); + basicForStatementNoShortIf(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1659); + enhancedForStatementNoShortIf(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BasicForStatementContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, i); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBasicForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBasicForStatement(this); + } + } + + public final BasicForStatementContext basicForStatement() throws RecognitionException { + BasicForStatementContext _localctx = new BasicForStatementContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_basicForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1662); + match(FOR); + setState(1663); + match(LPAREN); + setState(1665); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087178240296L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1664); + forInit(); + } + } + + setState(1667); + match(SEMI); + setState(1669); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1668); + expression(); + } + } + + setState(1671); + match(SEMI); + setState(1673); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1672); + forUpdate(); + } + } + + setState(1675); + match(RPAREN); + setState(1676); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BasicForStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, i); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBasicForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBasicForStatementNoShortIf(this); + } + } + + public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { + BasicForStatementNoShortIfContext _localctx = new BasicForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_basicForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1678); + match(FOR); + setState(1679); + match(LPAREN); + setState(1681); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087178240296L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1680); + forInit(); + } + } + + setState(1683); + match(SEMI); + setState(1685); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1684); + expression(); + } + } + + setState(1687); + match(SEMI); + setState(1689); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 25165827L) != 0)) { + { + setState(1688); + forUpdate(); + } + } + + setState(1691); + match(RPAREN); + setState(1692); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterForInit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitForInit(this); + } + } + + public final ForInitContext forInit() throws RecognitionException { + ForInitContext _localctx = new ForInitContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_forInit); + try { + setState(1696); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1694); + statementExpressionList(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1695); + localVariableDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterForUpdate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitForUpdate(this); + } + } + + public final ForUpdateContext forUpdate() throws RecognitionException { + ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_forUpdate); + try { + enterOuterAlt(_localctx, 1); + { + setState(1698); + statementExpressionList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementExpressionListContext extends ParserRuleContext { + public List statementExpression() { + return getRuleContexts(StatementExpressionContext.class); + } + public StatementExpressionContext statementExpression(int i) { + return getRuleContext(StatementExpressionContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterStatementExpressionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitStatementExpressionList(this); + } + } + + public final StatementExpressionListContext statementExpressionList() throws RecognitionException { + StatementExpressionListContext _localctx = new StatementExpressionListContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_statementExpressionList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1700); + statementExpression(); + setState(1705); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1701); + match(COMMA); + setState(1702); + statementExpression(); + } + } + setState(1707); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnhancedForStatementContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnhancedForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnhancedForStatement(this); + } + } + + public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { + EnhancedForStatementContext _localctx = new EnhancedForStatementContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_enhancedForStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1708); + match(FOR); + setState(1709); + match(LPAREN); + setState(1713); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1710); + variableModifier(); + } + } + setState(1715); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1716); + unannType(); + setState(1717); + variableDeclaratorId(); + setState(1718); + match(COLON); + setState(1719); + expression(); + setState(1720); + match(RPAREN); + setState(1721); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnhancedForStatementNoShortIfContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(Java8Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEnhancedForStatementNoShortIf(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitEnhancedForStatementNoShortIf(this); + } + } + + public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { + EnhancedForStatementNoShortIfContext _localctx = new EnhancedForStatementNoShortIfContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_enhancedForStatementNoShortIf); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1723); + match(FOR); + setState(1724); + match(LPAREN); + setState(1728); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1725); + variableModifier(); + } + } + setState(1730); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1731); + unannType(); + setState(1732); + variableDeclaratorId(); + setState(1733); + match(COLON); + setState(1734); + expression(); + setState(1735); + match(RPAREN); + setState(1736); + statementNoShortIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BreakStatementContext extends ParserRuleContext { + public TerminalNode BREAK() { return getToken(Java8Parser.BREAK, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterBreakStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitBreakStatement(this); + } + } + + public final BreakStatementContext breakStatement() throws RecognitionException { + BreakStatementContext _localctx = new BreakStatementContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_breakStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1738); + match(BREAK); + setState(1740); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1739); + match(Identifier); + } + } + + setState(1742); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ContinueStatementContext extends ParserRuleContext { + public TerminalNode CONTINUE() { return getToken(Java8Parser.CONTINUE, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterContinueStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitContinueStatement(this); + } + } + + public final ContinueStatementContext continueStatement() throws RecognitionException { + ContinueStatementContext _localctx = new ContinueStatementContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_continueStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1744); + match(CONTINUE); + setState(1746); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Identifier) { + { + setState(1745); + match(Identifier); + } + } + + setState(1748); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnStatementContext extends ParserRuleContext { + public TerminalNode RETURN() { return getToken(Java8Parser.RETURN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitReturnStatement(this); + } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_returnStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1750); + match(RETURN); + setState(1752); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(1751); + expression(); + } + } + + setState(1754); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ThrowStatementContext extends ParserRuleContext { + public TerminalNode THROW() { return getToken(Java8Parser.THROW, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterThrowStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitThrowStatement(this); + } + } + + public final ThrowStatementContext throwStatement() throws RecognitionException { + ThrowStatementContext _localctx = new ThrowStatementContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_throwStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1756); + match(THROW); + setState(1757); + expression(); + setState(1758); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SynchronizedStatementContext extends ParserRuleContext { + public TerminalNode SYNCHRONIZED() { return getToken(Java8Parser.SYNCHRONIZED, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterSynchronizedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitSynchronizedStatement(this); + } + } + + public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { + SynchronizedStatementContext _localctx = new SynchronizedStatementContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_synchronizedStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1760); + match(SYNCHRONIZED); + setState(1761); + match(LPAREN); + setState(1762); + expression(); + setState(1763); + match(RPAREN); + setState(1764); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryStatementContext extends ParserRuleContext { + public TerminalNode TRY() { return getToken(Java8Parser.TRY, 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 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTryStatement(this); + } + } + + public final TryStatementContext tryStatement() throws RecognitionException { + TryStatementContext _localctx = new TryStatementContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_tryStatement); + int _la; + try { + setState(1778); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1766); + match(TRY); + setState(1767); + block(); + setState(1768); + catches(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1770); + match(TRY); + setState(1771); + block(); + setState(1773); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1772); + catches(); + } + } + + setState(1775); + finally_(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1777); + tryWithResourcesStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCatches(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCatches(this); + } + } + + public final CatchesContext catches() throws RecognitionException { + CatchesContext _localctx = new CatchesContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_catches); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1780); + catchClause(); + setState(1784); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CATCH) { + { + { + setState(1781); + catchClause(); + } + } + setState(1786); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchClauseContext extends ParserRuleContext { + public TerminalNode CATCH() { return getToken(Java8Parser.CATCH, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public CatchFormalParameterContext catchFormalParameter() { + return getRuleContext(CatchFormalParameterContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCatchClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCatchClause(this); + } + } + + public final CatchClauseContext catchClause() throws RecognitionException { + CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_catchClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1787); + match(CATCH); + setState(1788); + match(LPAREN); + setState(1789); + catchFormalParameter(); + setState(1790); + match(RPAREN); + setState(1791); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCatchFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCatchFormalParameter(this); + } + } + + public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { + CatchFormalParameterContext _localctx = new CatchFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_catchFormalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1796); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1793); + variableModifier(); + } + } + setState(1798); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1799); + catchType(); + setState(1800); + variableDeclaratorId(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchTypeContext extends ParserRuleContext { + public UnannClassTypeContext unannClassType() { + return getRuleContext(UnannClassTypeContext.class,0); + } + public List BITOR() { return getTokens(Java8Parser.BITOR); } + public TerminalNode BITOR(int i) { + return getToken(Java8Parser.BITOR, i); + } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCatchType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCatchType(this); + } + } + + public final CatchTypeContext catchType() throws RecognitionException { + CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_catchType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1802); + unannClassType(); + setState(1807); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITOR) { + { + { + setState(1803); + match(BITOR); + setState(1804); + classType(); + } + } + setState(1809); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class Finally_Context extends ParserRuleContext { + public TerminalNode FINALLY() { return getToken(Java8Parser.FINALLY, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFinally_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFinally_(this); + } + } + + public final Finally_Context finally_() throws RecognitionException { + Finally_Context _localctx = new Finally_Context(_ctx, getState()); + enterRule(_localctx, 340, RULE_finally_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1810); + match(FINALLY); + setState(1811); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryWithResourcesStatementContext extends ParserRuleContext { + public TerminalNode TRY() { return getToken(Java8Parser.TRY, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTryWithResourcesStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTryWithResourcesStatement(this); + } + } + + public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { + TryWithResourcesStatementContext _localctx = new TryWithResourcesStatementContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_tryWithResourcesStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1813); + match(TRY); + setState(1814); + resourceSpecification(); + setState(1815); + block(); + setState(1817); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1816); + catches(); + } + } + + setState(1820); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1819); + finally_(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceSpecificationContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ResourceListContext resourceList() { + return getRuleContext(ResourceListContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterResourceSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitResourceSpecification(this); + } + } + + public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { + ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_resourceSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1822); + match(LPAREN); + setState(1823); + resourceList(); + setState(1825); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1824); + match(SEMI); + } + } + + setState(1827); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceListContext extends ParserRuleContext { + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public List SEMI() { return getTokens(Java8Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java8Parser.SEMI, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterResourceList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitResourceList(this); + } + } + + public final ResourceListContext resourceList() throws RecognitionException { + ResourceListContext _localctx = new ResourceListContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_resourceList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1829); + resource(); + setState(1834); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,187,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1830); + match(SEMI); + setState(1831); + resource(); + } + } + } + setState(1836); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,187,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceContext extends ParserRuleContext { + public UnannTypeContext unannType() { + return getRuleContext(UnannTypeContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterResource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitResource(this); + } + } + + public final ResourceContext resource() throws RecognitionException { + ResourceContext _localctx = new ResourceContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_resource); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1840); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==FINAL || _la==AT) { + { + { + setState(1837); + variableModifier(); + } + } + setState(1842); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1843); + unannType(); + setState(1844); + variableDeclaratorId(); + setState(1845); + match(ASSIGN); + setState(1846); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPrimary(this); + } + } + + public final PrimaryContext primary() throws RecognitionException { + PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1850); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,189,_ctx) ) { + case 1: + { + setState(1848); + primaryNoNewArray_lfno_primary(); + } + break; + case 2: + { + setState(1849); + arrayCreationExpression(); + } + break; + } + setState(1855); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1852); + primaryNoNewArray_lf_primary(); + } + } + } + setState(1857); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimaryNoNewArrayContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPrimaryNoNewArray(this); + } + } + + public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { + PrimaryNoNewArrayContext _localctx = new PrimaryNoNewArrayContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_primaryNoNewArray); + int _la; + try { + setState(1887); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1858); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1859); + typeName(); + setState(1864); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1860); + match(LBRACK); + setState(1861); + match(RBRACK); + } + } + setState(1866); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1867); + match(DOT); + setState(1868); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1870); + match(VOID); + setState(1871); + match(DOT); + setState(1872); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1873); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1874); + typeName(); + setState(1875); + match(DOT); + setState(1876); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1878); + match(LPAREN); + setState(1879); + expression(); + setState(1880); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1882); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1883); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1884); + arrayAccess(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1885); + methodInvocation(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1886); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lf_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 354, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lfno_arrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 356, RULE_primaryNoNewArray_lfno_arrayAccess); + int _la; + try { + setState(1919); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1891); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1892); + typeName(); + setState(1897); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1893); + match(LBRACK); + setState(1894); + match(RBRACK); + } + } + setState(1899); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1900); + match(DOT); + setState(1901); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1903); + match(VOID); + setState(1904); + match(DOT); + setState(1905); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1906); + match(THIS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1907); + typeName(); + setState(1908); + match(DOT); + setState(1909); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1911); + match(LPAREN); + setState(1912); + expression(); + setState(1913); + match(RPAREN); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1915); + classInstanceCreationExpression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1916); + fieldAccess(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1917); + methodInvocation(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1918); + methodReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 358, RULE_primaryNoNewArray_lf_primary); + try { + setState(1926); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1921); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1922); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1923); + arrayAccess_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1924); + methodInvocation_lf_primary(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1925); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 360, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 362, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); + try { + setState(1934); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1930); + classInstanceCreationExpression_lf_primary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1931); + fieldAccess_lf_primary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1932); + methodInvocation_lf_primary(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1933); + methodReference_lf_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 364, RULE_primaryNoNewArray_lfno_primary); + int _la; + try { + setState(1976); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1936); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1937); + typeName(); + setState(1942); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1938); + match(LBRACK); + setState(1939); + match(RBRACK); + } + } + setState(1944); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1945); + match(DOT); + setState(1946); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1948); + unannPrimitiveType(); + setState(1953); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1949); + match(LBRACK); + setState(1950); + match(RBRACK); + } + } + setState(1955); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1956); + match(DOT); + setState(1957); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1959); + match(VOID); + setState(1960); + match(DOT); + setState(1961); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1962); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1963); + typeName(); + setState(1964); + match(DOT); + setState(1965); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1967); + match(LPAREN); + setState(1968); + expression(); + setState(1969); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1971); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1972); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1973); + arrayAccess_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1974); + methodInvocation_lfno_primary(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(1975); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 366, 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java8Parser.CLASS, 0); } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, i); + } + public UnannPrimitiveTypeContext unannPrimitiveType() { + return getRuleContext(UnannPrimitiveTypeContext.class,0); + } + public TerminalNode VOID() { return getToken(Java8Parser.VOID, 0); } + public TerminalNode THIS() { return getToken(Java8Parser.THIS, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 368, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); + int _la; + try { + setState(2019); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1980); + literal(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1981); + typeName(); + setState(1986); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1982); + match(LBRACK); + setState(1983); + match(RBRACK); + } + } + setState(1988); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1989); + match(DOT); + setState(1990); + match(CLASS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1992); + unannPrimitiveType(); + setState(1997); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1993); + match(LBRACK); + setState(1994); + match(RBRACK); + } + } + setState(1999); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2000); + match(DOT); + setState(2001); + match(CLASS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2003); + match(VOID); + setState(2004); + match(DOT); + setState(2005); + match(CLASS); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2006); + match(THIS); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2007); + typeName(); + setState(2008); + match(DOT); + setState(2009); + match(THIS); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2011); + match(LPAREN); + setState(2012); + expression(); + setState(2013); + match(RPAREN); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(2015); + classInstanceCreationExpression_lfno_primary(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(2016); + fieldAccess_lfno_primary(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(2017); + methodInvocation_lfno_primary(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(2018); + methodReference_lfno_primary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpressionContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassInstanceCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitClassInstanceCreationExpression(this); + } + } + + public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { + ClassInstanceCreationExpressionContext _localctx = new ClassInstanceCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_classInstanceCreationExpression); + int _la; + try { + setState(2104); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2021); + match(NEW); + setState(2023); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2022); + typeArguments(); + } + } + + setState(2028); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2025); + annotation(); + } + } + setState(2030); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2031); + match(Identifier); + setState(2042); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2032); + match(DOT); + setState(2036); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2033); + annotation(); + } + } + setState(2038); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2039); + match(Identifier); + } + } + setState(2044); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2046); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2045); + typeArgumentsOrDiamond(); + } + } + + setState(2048); + match(LPAREN); + setState(2050); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2049); + argumentList(); + } + } + + setState(2052); + match(RPAREN); + setState(2054); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2053); + classBody(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2056); + expressionName(); + setState(2057); + match(DOT); + setState(2058); + match(NEW); + setState(2060); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2059); + typeArguments(); + } + } + + setState(2065); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2062); + annotation(); + } + } + setState(2067); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2068); + match(Identifier); + setState(2070); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2069); + typeArgumentsOrDiamond(); + } + } + + setState(2072); + match(LPAREN); + setState(2074); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2073); + argumentList(); + } + } + + setState(2076); + match(RPAREN); + setState(2078); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2077); + classBody(); + } + } + + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2080); + primary(); + setState(2081); + match(DOT); + setState(2082); + match(NEW); + setState(2084); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2083); + typeArguments(); + } + } + + setState(2089); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2086); + annotation(); + } + } + setState(2091); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2092); + match(Identifier); + setState(2094); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2093); + typeArgumentsOrDiamond(); + } + } + + setState(2096); + match(LPAREN); + setState(2098); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2097); + argumentList(); + } + } + + setState(2100); + match(RPAREN); + setState(2102); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(2101); + classBody(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpression_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassInstanceCreationExpression_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 372, RULE_classInstanceCreationExpression_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2106); + match(DOT); + setState(2107); + match(NEW); + setState(2109); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2108); + typeArguments(); + } + } + + setState(2114); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2111); + annotation(); + } + } + setState(2116); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2117); + match(Identifier); + setState(2119); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2118); + typeArgumentsOrDiamond(); + } + } + + setState(2121); + match(LPAREN); + setState(2123); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2122); + argumentList(); + } + } + + setState(2125); + match(RPAREN); + setState(2127); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + case 1: + { + setState(2126); + classBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassInstanceCreationExpression_lfno_primaryContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterClassInstanceCreationExpression_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 374, RULE_classInstanceCreationExpression_lfno_primary); + int _la; + try { + setState(2188); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEW: + enterOuterAlt(_localctx, 1); + { + setState(2129); + match(NEW); + setState(2131); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2130); + typeArguments(); + } + } + + setState(2136); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2133); + annotation(); + } + } + setState(2138); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2139); + match(Identifier); + setState(2150); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(2140); + match(DOT); + setState(2144); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2141); + annotation(); + } + } + setState(2146); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2147); + match(Identifier); + } + } + setState(2152); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2154); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2153); + typeArgumentsOrDiamond(); + } + } + + setState(2156); + match(LPAREN); + setState(2158); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2157); + argumentList(); + } + } + + setState(2160); + match(RPAREN); + setState(2162); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { + case 1: + { + setState(2161); + classBody(); + } + break; + } + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2164); + expressionName(); + setState(2165); + match(DOT); + setState(2166); + match(NEW); + setState(2168); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2167); + typeArguments(); + } + } + + setState(2173); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2170); + annotation(); + } + } + setState(2175); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2176); + match(Identifier); + setState(2178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2177); + typeArgumentsOrDiamond(); + } + } + + setState(2180); + match(LPAREN); + setState(2182); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2181); + argumentList(); + } + } + + setState(2184); + match(RPAREN); + setState(2186); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,237,_ctx) ) { + case 1: + { + setState(2185); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java8Parser.GT, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterTypeArgumentsOrDiamond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitTypeArgumentsOrDiamond(this); + } + } + + public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { + TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_typeArgumentsOrDiamond); + try { + setState(2193); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2190); + typeArguments(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2191); + match(LT); + setState(2192); + match(GT); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccessContext extends ParserRuleContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFieldAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitFieldAccess(this); + } + } + + public final FieldAccessContext fieldAccess() throws RecognitionException { + FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_fieldAccess); + try { + setState(2208); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2195); + primary(); + setState(2196); + match(DOT); + setState(2197); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2199); + match(SUPER); + setState(2200); + match(DOT); + setState(2201); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2202); + typeName(); + setState(2203); + match(DOT); + setState(2204); + match(SUPER); + setState(2205); + match(DOT); + setState(2206); + match(Identifier); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccess_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFieldAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 380, RULE_fieldAccess_lf_primary); + try { + enterOuterAlt(_localctx, 1); + { + setState(2210); + match(DOT); + setState(2211); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldAccess_lfno_primaryContext extends ParserRuleContext { + public TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterFieldAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 382, RULE_fieldAccess_lfno_primary); + try { + setState(2222); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPER: + enterOuterAlt(_localctx, 1); + { + setState(2213); + match(SUPER); + setState(2214); + match(DOT); + setState(2215); + match(Identifier); + } + break; + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(2216); + typeName(); + setState(2217); + match(DOT); + setState(2218); + match(SUPER); + setState(2219); + match(DOT); + setState(2220); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayAccessContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayAccess(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitArrayAccess(this); + } + } + + public final ArrayAccessContext arrayAccess() throws RecognitionException { + ArrayAccessContext _localctx = new ArrayAccessContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_arrayAccess); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2234); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { + case 1: + { + setState(2224); + expressionName(); + setState(2225); + match(LBRACK); + setState(2226); + expression(); + setState(2227); + match(RBRACK); + } + break; + case 2: + { + setState(2229); + primaryNoNewArray_lfno_arrayAccess(); + setState(2230); + match(LBRACK); + setState(2231); + expression(); + setState(2232); + match(RBRACK); + } + break; + } + setState(2243); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(2236); + primaryNoNewArray_lf_arrayAccess(); + setState(2237); + match(LBRACK); + setState(2238); + expression(); + setState(2239); + match(RBRACK); + } + } + setState(2245); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayAccess_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 386, RULE_arrayAccess_lf_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2246); + primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); + setState(2247); + match(LBRACK); + setState(2248); + expression(); + setState(2249); + match(RBRACK); + setState(2257); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,244,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2250); + primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); + setState(2251); + match(LBRACK); + setState(2252); + expression(); + setState(2253); + match(RBRACK); + } + } + } + setState(2259); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,244,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayAccess_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public List LBRACK() { return getTokens(Java8Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java8Parser.LBRACK, i); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List RBRACK() { return getTokens(Java8Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java8Parser.RBRACK, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayAccess_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 388, RULE_arrayAccess_lfno_primary); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2270); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + case 1: + { + setState(2260); + expressionName(); + setState(2261); + match(LBRACK); + setState(2262); + expression(); + setState(2263); + match(RBRACK); + } + break; + case 2: + { + setState(2265); + primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); + setState(2266); + match(LBRACK); + setState(2267); + expression(); + setState(2268); + match(RBRACK); + } + break; + } + setState(2279); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,246,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2272); + primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); + setState(2273); + match(LBRACK); + setState(2274); + expression(); + setState(2275); + match(RBRACK); + } + } + } + setState(2281); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,246,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocationContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodInvocation(this); + } + } + + public final MethodInvocationContext methodInvocation() throws RecognitionException { + MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_methodInvocation); + int _la; + try { + setState(2350); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,258,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2282); + methodName(); + setState(2283); + match(LPAREN); + setState(2285); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2284); + argumentList(); + } + } + + setState(2287); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2289); + typeName(); + setState(2290); + match(DOT); + setState(2292); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2291); + typeArguments(); + } + } + + setState(2294); + match(Identifier); + setState(2295); + match(LPAREN); + setState(2297); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2296); + argumentList(); + } + } + + setState(2299); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2301); + expressionName(); + setState(2302); + match(DOT); + setState(2304); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2303); + typeArguments(); + } + } + + setState(2306); + match(Identifier); + setState(2307); + match(LPAREN); + setState(2309); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2308); + argumentList(); + } + } + + setState(2311); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2313); + primary(); + setState(2314); + match(DOT); + setState(2316); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2315); + typeArguments(); + } + } + + setState(2318); + match(Identifier); + setState(2319); + match(LPAREN); + setState(2321); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2320); + argumentList(); + } + } + + setState(2323); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2325); + match(SUPER); + setState(2326); + match(DOT); + setState(2328); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2327); + typeArguments(); + } + } + + setState(2330); + match(Identifier); + setState(2331); + match(LPAREN); + setState(2333); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2332); + argumentList(); + } + } + + setState(2335); + match(RPAREN); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2336); + typeName(); + setState(2337); + match(DOT); + setState(2338); + match(SUPER); + setState(2339); + match(DOT); + setState(2341); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2340); + typeArguments(); + } + } + + setState(2343); + match(Identifier); + setState(2344); + match(LPAREN); + setState(2346); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2345); + argumentList(); + } + } + + setState(2348); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocation_lf_primaryContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodInvocation_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 392, RULE_methodInvocation_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2352); + match(DOT); + setState(2354); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2353); + typeArguments(); + } + } + + setState(2356); + match(Identifier); + setState(2357); + match(LPAREN); + setState(2359); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2358); + argumentList(); + } + } + + setState(2361); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodInvocation_lfno_primaryContext extends ParserRuleContext { + public MethodNameContext methodName() { + return getRuleContext(MethodNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public List DOT() { return getTokens(Java8Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java8Parser.DOT, i); + } + 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodInvocation_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 394, RULE_methodInvocation_lfno_primary); + int _la; + try { + setState(2419); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,270,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2363); + methodName(); + setState(2364); + match(LPAREN); + setState(2366); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2365); + argumentList(); + } + } + + setState(2368); + match(RPAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2370); + typeName(); + setState(2371); + match(DOT); + setState(2373); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2372); + typeArguments(); + } + } + + setState(2375); + match(Identifier); + setState(2376); + match(LPAREN); + setState(2378); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2377); + argumentList(); + } + } + + setState(2380); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2382); + expressionName(); + setState(2383); + match(DOT); + setState(2385); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2384); + typeArguments(); + } + } + + setState(2387); + match(Identifier); + setState(2388); + match(LPAREN); + setState(2390); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2389); + argumentList(); + } + } + + setState(2392); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2394); + match(SUPER); + setState(2395); + match(DOT); + setState(2397); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2396); + typeArguments(); + } + } + + setState(2399); + match(Identifier); + setState(2400); + match(LPAREN); + setState(2402); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2401); + argumentList(); + } + } + + setState(2404); + match(RPAREN); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2405); + typeName(); + setState(2406); + match(DOT); + setState(2407); + match(SUPER); + setState(2408); + match(DOT); + setState(2410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2409); + typeArguments(); + } + } + + setState(2412); + match(Identifier); + setState(2413); + match(LPAREN); + setState(2415); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 286270087177978152L) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & 25769819139L) != 0)) { + { + setState(2414); + argumentList(); + } + } + + setState(2417); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentListContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitArgumentList(this); + } + } + + public final ArgumentListContext argumentList() throws RecognitionException { + ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_argumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2421); + expression(); + setState(2426); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2422); + match(COMMA); + setState(2423); + expression(); + } + } + setState(2428); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReferenceContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitMethodReference(this); + } + } + + public final MethodReferenceContext methodReference() throws RecognitionException { + MethodReferenceContext _localctx = new MethodReferenceContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_methodReference); + int _la; + try { + setState(2476); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,278,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2429); + expressionName(); + setState(2430); + match(COLONCOLON); + setState(2432); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2431); + typeArguments(); + } + } + + setState(2434); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2436); + referenceType(); + setState(2437); + match(COLONCOLON); + setState(2439); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2438); + typeArguments(); + } + } + + setState(2441); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2443); + primary(); + setState(2444); + match(COLONCOLON); + setState(2446); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2445); + typeArguments(); + } + } + + setState(2448); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2450); + match(SUPER); + setState(2451); + match(COLONCOLON); + setState(2453); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2452); + typeArguments(); + } + } + + setState(2455); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2456); + typeName(); + setState(2457); + match(DOT); + setState(2458); + match(SUPER); + setState(2459); + match(COLONCOLON); + setState(2461); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2460); + typeArguments(); + } + } + + setState(2463); + match(Identifier); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2465); + classType(); + setState(2466); + match(COLONCOLON); + setState(2468); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2467); + typeArguments(); + } + } + + setState(2470); + match(NEW); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2472); + arrayType(); + setState(2473); + match(COLONCOLON); + setState(2474); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReference_lf_primaryContext extends ParserRuleContext { + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodReference_lf_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 400, RULE_methodReference_lf_primary); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2478); + match(COLONCOLON); + setState(2480); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2479); + typeArguments(); + } + } + + setState(2482); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodReference_lfno_primaryContext extends ParserRuleContext { + public ExpressionNameContext expressionName() { + return getRuleContext(ExpressionNameContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java8Parser.COLONCOLON, 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 TerminalNode SUPER() { return getToken(Java8Parser.SUPER, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TerminalNode DOT() { return getToken(Java8Parser.DOT, 0); } + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMethodReference_lfno_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 402, RULE_methodReference_lfno_primary); + int _la; + try { + setState(2524); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,285,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2484); + expressionName(); + setState(2485); + match(COLONCOLON); + setState(2487); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2486); + typeArguments(); + } + } + + setState(2489); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2491); + referenceType(); + setState(2492); + match(COLONCOLON); + setState(2494); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2493); + typeArguments(); + } + } + + setState(2496); + match(Identifier); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2498); + match(SUPER); + setState(2499); + match(COLONCOLON); + setState(2501); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2500); + typeArguments(); + } + } + + setState(2503); + match(Identifier); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2504); + typeName(); + setState(2505); + match(DOT); + setState(2506); + match(SUPER); + setState(2507); + match(COLONCOLON); + setState(2509); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2508); + typeArguments(); + } + } + + setState(2511); + match(Identifier); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2513); + classType(); + setState(2514); + match(COLONCOLON); + setState(2516); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2515); + typeArguments(); + } + } + + setState(2518); + match(NEW); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2520); + arrayType(); + setState(2521); + match(COLONCOLON); + setState(2522); + match(NEW); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayCreationExpressionContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(Java8Parser.NEW, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterArrayCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitArrayCreationExpression(this); + } + } + + public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { + ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_arrayCreationExpression); + try { + setState(2548); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,288,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2526); + match(NEW); + setState(2527); + primitiveType(); + setState(2528); + dimExprs(); + setState(2530); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,286,_ctx) ) { + case 1: + { + setState(2529); + dims(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2532); + match(NEW); + setState(2533); + classOrInterfaceType(); + setState(2534); + dimExprs(); + setState(2536); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,287,_ctx) ) { + case 1: + { + setState(2535); + dims(); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2538); + match(NEW); + setState(2539); + primitiveType(); + setState(2540); + dims(); + setState(2541); + arrayInitializer(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2543); + match(NEW); + setState(2544); + classOrInterfaceType(); + setState(2545); + dims(); + setState(2546); + arrayInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterDimExprs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitDimExprs(this); + } + } + + public final DimExprsContext dimExprs() throws RecognitionException { + DimExprsContext _localctx = new DimExprsContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_dimExprs); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2550); + dimExpr(); + setState(2554); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2551); + dimExpr(); + } + } + } + setState(2556); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DimExprContext extends ParserRuleContext { + public TerminalNode LBRACK() { return getToken(Java8Parser.LBRACK, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RBRACK() { return getToken(Java8Parser.RBRACK, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterDimExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitDimExpr(this); + } + } + + public final DimExprContext dimExpr() throws RecognitionException { + DimExprContext _localctx = new DimExprContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_dimExpr); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2560); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AT) { + { + { + setState(2557); + annotation(); + } + } + setState(2562); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2563); + match(LBRACK); + setState(2564); + expression(); + setState(2565); + match(RBRACK); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConstantExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConstantExpression(this); + } + } + + public final ConstantExpressionContext constantExpression() throws RecognitionException { + ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_constantExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2567); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_expression); + try { + setState(2571); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2569); + lambdaExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2570); + assignmentExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaExpressionContext extends ParserRuleContext { + public LambdaParametersContext lambdaParameters() { + return getRuleContext(LambdaParametersContext.class,0); + } + public TerminalNode ARROW() { return getToken(Java8Parser.ARROW, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLambdaExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLambdaExpression(this); + } + } + + public final LambdaExpressionContext lambdaExpression() throws RecognitionException { + LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_lambdaExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2573); + lambdaParameters(); + setState(2574); + match(ARROW); + setState(2575); + lambdaBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaParametersContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public InferredFormalParameterListContext inferredFormalParameterList() { + return getRuleContext(InferredFormalParameterListContext.class,0); + } + public LambdaParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).enterLambdaParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLambdaParameters(this); + } + } + + public final LambdaParametersContext lambdaParameters() throws RecognitionException { + LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_lambdaParameters); + int _la; + try { + setState(2587); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2577); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2578); + match(LPAREN); + setState(2580); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111369512L) != 0) || _la==Identifier || _la==AT) { + { + setState(2579); + formalParameterList(); + } + } + + setState(2582); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2583); + match(LPAREN); + setState(2584); + inferredFormalParameterList(); + setState(2585); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InferredFormalParameterListContext extends ParserRuleContext { + public List Identifier() { return getTokens(Java8Parser.Identifier); } + public TerminalNode Identifier(int i) { + return getToken(Java8Parser.Identifier, i); + } + public List COMMA() { return getTokens(Java8Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java8Parser.COMMA, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInferredFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitInferredFormalParameterList(this); + } + } + + public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { + InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_inferredFormalParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2589); + match(Identifier); + setState(2594); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2590); + match(COMMA); + setState(2591); + match(Identifier); + } + } + setState(2596); + _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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLambdaBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLambdaBody(this); + } + } + + public final LambdaBodyContext lambdaBody() throws RecognitionException { + LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_lambdaBody); + try { + setState(2599); + _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(2597); + expression(); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(2598); + 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; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAssignmentExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAssignmentExpression(this); + } + } + + public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { + AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_assignmentExpression); + try { + setState(2603); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2601); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2602); + assignment(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAssignment(this); + } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(2605); + leftHandSide(); + setState(2606); + assignmentOperator(); + setState(2607); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterLeftHandSide(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitLeftHandSide(this); + } + } + + public final LeftHandSideContext leftHandSide() throws RecognitionException { + LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); + enterRule(_localctx, 426, RULE_leftHandSide); + try { + setState(2612); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2609); + expressionName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2610); + fieldAccess(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2611); + arrayAccess(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssignmentOperatorContext extends ParserRuleContext { + public TerminalNode ASSIGN() { return getToken(Java8Parser.ASSIGN, 0); } + public TerminalNode MUL_ASSIGN() { return getToken(Java8Parser.MUL_ASSIGN, 0); } + public TerminalNode DIV_ASSIGN() { return getToken(Java8Parser.DIV_ASSIGN, 0); } + public TerminalNode MOD_ASSIGN() { return getToken(Java8Parser.MOD_ASSIGN, 0); } + public TerminalNode ADD_ASSIGN() { return getToken(Java8Parser.ADD_ASSIGN, 0); } + public TerminalNode SUB_ASSIGN() { return getToken(Java8Parser.SUB_ASSIGN, 0); } + public TerminalNode LSHIFT_ASSIGN() { return getToken(Java8Parser.LSHIFT_ASSIGN, 0); } + public TerminalNode RSHIFT_ASSIGN() { return getToken(Java8Parser.RSHIFT_ASSIGN, 0); } + public TerminalNode URSHIFT_ASSIGN() { return getToken(Java8Parser.URSHIFT_ASSIGN, 0); } + public TerminalNode AND_ASSIGN() { return getToken(Java8Parser.AND_ASSIGN, 0); } + public TerminalNode XOR_ASSIGN() { return getToken(Java8Parser.XOR_ASSIGN, 0); } + public TerminalNode OR_ASSIGN() { return getToken(Java8Parser.OR_ASSIGN, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAssignmentOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitAssignmentOperator(this); + } + } + + public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { + AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_assignmentOperator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2614); + _la = _input.LA(1); + if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & 68685922305L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalExpressionContext extends ParserRuleContext { + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public TerminalNode QUESTION() { return getToken(Java8Parser.QUESTION, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode COLON() { return getToken(Java8Parser.COLON, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConditionalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitConditionalExpression(this); + } + } + + public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { + ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_conditionalExpression); + try { + setState(2623); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2616); + conditionalOrExpression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2617); + conditionalOrExpression(0); + setState(2618); + match(QUESTION); + setState(2619); + expression(); + setState(2620); + match(COLON); + setState(2621); + conditionalExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalOrExpressionContext extends ParserRuleContext { + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public ConditionalOrExpressionContext conditionalOrExpression() { + return getRuleContext(ConditionalOrExpressionContext.class,0); + } + public TerminalNode OR() { return getToken(Java8Parser.OR, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConditionalOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 432; + enterRecursionRule(_localctx, 432, RULE_conditionalOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2626); + conditionalAndExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2633); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); + setState(2628); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2629); + match(OR); + setState(2630); + conditionalAndExpression(0); + } + } + } + setState(2635); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,299,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConditionalAndExpressionContext extends ParserRuleContext { + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public ConditionalAndExpressionContext conditionalAndExpression() { + return getRuleContext(ConditionalAndExpressionContext.class,0); + } + public TerminalNode AND() { return getToken(Java8Parser.AND, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterConditionalAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 434; + enterRecursionRule(_localctx, 434, RULE_conditionalAndExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2637); + inclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2644); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,300,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); + setState(2639); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2640); + match(AND); + setState(2641); + inclusiveOrExpression(0); + } + } + } + setState(2646); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,300,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InclusiveOrExpressionContext extends ParserRuleContext { + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public InclusiveOrExpressionContext inclusiveOrExpression() { + return getRuleContext(InclusiveOrExpressionContext.class,0); + } + public TerminalNode BITOR() { return getToken(Java8Parser.BITOR, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterInclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 436; + enterRecursionRule(_localctx, 436, RULE_inclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2648); + exclusiveOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2655); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,301,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); + setState(2650); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2651); + match(BITOR); + setState(2652); + exclusiveOrExpression(0); + } + } + } + setState(2657); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,301,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExclusiveOrExpressionContext extends ParserRuleContext { + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public ExclusiveOrExpressionContext exclusiveOrExpression() { + return getRuleContext(ExclusiveOrExpressionContext.class,0); + } + public TerminalNode CARET() { return getToken(Java8Parser.CARET, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterExclusiveOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 438; + enterRecursionRule(_localctx, 438, RULE_exclusiveOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2659); + andExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2666); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,302,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); + setState(2661); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2662); + match(CARET); + setState(2663); + andExpression(0); + } + } + } + setState(2668); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,302,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AndExpressionContext extends ParserRuleContext { + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public AndExpressionContext andExpression() { + return getRuleContext(AndExpressionContext.class,0); + } + public TerminalNode BITAND() { return getToken(Java8Parser.BITAND, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 440; + enterRecursionRule(_localctx, 440, RULE_andExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2670); + equalityExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2677); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,303,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_andExpression); + setState(2672); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2673); + match(BITAND); + setState(2674); + equalityExpression(0); + } + } + } + setState(2679); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,303,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EqualityExpressionContext extends ParserRuleContext { + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public TerminalNode EQUAL() { return getToken(Java8Parser.EQUAL, 0); } + public TerminalNode NOTEQUAL() { return getToken(Java8Parser.NOTEQUAL, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterEqualityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 442; + enterRecursionRule(_localctx, 442, RULE_equalityExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2681); + relationalExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2691); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2689); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { + case 1: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2683); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2684); + match(EQUAL); + setState(2685); + relationalExpression(0); + } + break; + case 2: + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(2686); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2687); + match(NOTEQUAL); + setState(2688); + relationalExpression(0); + } + break; + } + } + } + setState(2693); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class RelationalExpressionContext extends ParserRuleContext { + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public TerminalNode LT() { return getToken(Java8Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java8Parser.GT, 0); } + public TerminalNode LE() { return getToken(Java8Parser.LE, 0); } + public TerminalNode GE() { return getToken(Java8Parser.GE, 0); } + public TerminalNode INSTANCEOF() { return getToken(Java8Parser.INSTANCEOF, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterRelationalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 444; + enterRecursionRule(_localctx, 444, RULE_relationalExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2695); + shiftExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2714); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2712); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,306,_ctx) ) { + case 1: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2697); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(2698); + match(LT); + setState(2699); + shiftExpression(0); + } + break; + case 2: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2700); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(2701); + match(GT); + setState(2702); + shiftExpression(0); + } + break; + case 3: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2703); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2704); + match(LE); + setState(2705); + shiftExpression(0); + } + break; + case 4: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2706); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2707); + match(GE); + setState(2708); + shiftExpression(0); + } + break; + case 5: + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(2709); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2710); + match(INSTANCEOF); + setState(2711); + referenceType(); + } + break; + } + } + } + setState(2716); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ShiftExpressionContext extends ParserRuleContext { + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public ShiftExpressionContext shiftExpression() { + return getRuleContext(ShiftExpressionContext.class,0); + } + public List LT() { return getTokens(Java8Parser.LT); } + public TerminalNode LT(int i) { + return getToken(Java8Parser.LT, i); + } + public List GT() { return getTokens(Java8Parser.GT); } + public TerminalNode GT(int i) { + return getToken(Java8Parser.GT, i); + } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterShiftExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 446; + enterRecursionRule(_localctx, 446, RULE_shiftExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2718); + additiveExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2735); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2733); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) { + case 1: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2720); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2721); + match(LT); + setState(2722); + match(LT); + setState(2723); + additiveExpression(0); + } + break; + case 2: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2724); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2725); + match(GT); + setState(2726); + match(GT); + setState(2727); + additiveExpression(0); + } + break; + case 3: + { + _localctx = new ShiftExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); + setState(2728); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2729); + match(GT); + setState(2730); + match(GT); + setState(2731); + match(GT); + setState(2732); + additiveExpression(0); + } + break; + } + } + } + setState(2737); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class AdditiveExpressionContext extends ParserRuleContext { + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public TerminalNode ADD() { return getToken(Java8Parser.ADD, 0); } + public TerminalNode SUB() { return getToken(Java8Parser.SUB, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterAdditiveExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 448; + enterRecursionRule(_localctx, 448, RULE_additiveExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2739); + multiplicativeExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(2749); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2747); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { + case 1: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2741); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2742); + match(ADD); + setState(2743); + multiplicativeExpression(0); + } + break; + case 2: + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(2744); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2745); + match(SUB); + setState(2746); + multiplicativeExpression(0); + } + break; + } + } + } + setState(2751); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class MultiplicativeExpressionContext extends ParserRuleContext { + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public MultiplicativeExpressionContext multiplicativeExpression() { + return getRuleContext(MultiplicativeExpressionContext.class,0); + } + public TerminalNode MUL() { return getToken(Java8Parser.MUL, 0); } + public TerminalNode DIV() { return getToken(Java8Parser.DIV, 0); } + public TerminalNode MOD() { return getToken(Java8Parser.MOD, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterMultiplicativeExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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 = 450; + enterRecursionRule(_localctx, 450, RULE_multiplicativeExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(2753); + unaryExpression(); + } + _ctx.stop = _input.LT(-1); + setState(2766); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2764); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { + case 1: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2755); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(2756); + match(MUL); + setState(2757); + unaryExpression(); + } + break; + case 2: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2758); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(2759); + match(DIV); + setState(2760); + unaryExpression(); + } + break; + case 3: + { + _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); + setState(2761); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2762); + match(MOD); + setState(2763); + unaryExpression(); + } + break; + } + } + } + setState(2768); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnaryExpressionContext extends ParserRuleContext { + public PreIncrementExpressionContext preIncrementExpression() { + return getRuleContext(PreIncrementExpressionContext.class,0); + } + public PreDecrementExpressionContext preDecrementExpression() { + return getRuleContext(PreDecrementExpressionContext.class,0); + } + public TerminalNode ADD() { return getToken(Java8Parser.ADD, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public TerminalNode SUB() { return getToken(Java8Parser.SUB, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnaryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnaryExpression(this); + } + } + + public final UnaryExpressionContext unaryExpression() throws RecognitionException { + UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); + enterRule(_localctx, 452, RULE_unaryExpression); + try { + setState(2776); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + enterOuterAlt(_localctx, 1); + { + setState(2769); + preIncrementExpression(); + } + break; + case DEC: + enterOuterAlt(_localctx, 2); + { + setState(2770); + preDecrementExpression(); + } + break; + case ADD: + enterOuterAlt(_localctx, 3); + { + setState(2771); + match(ADD); + setState(2772); + unaryExpression(); + } + break; + case SUB: + enterOuterAlt(_localctx, 4); + { + setState(2773); + match(SUB); + setState(2774); + 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(2775); + 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class PreIncrementExpressionContext extends ParserRuleContext { + public TerminalNode INC() { return getToken(Java8Parser.INC, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPreIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPreIncrementExpression(this); + } + } + + public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { + PreIncrementExpressionContext _localctx = new PreIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 454, RULE_preIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2778); + match(INC); + setState(2779); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PreDecrementExpressionContext extends ParserRuleContext { + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPreDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPreDecrementExpression(this); + } + } + + public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { + PreDecrementExpressionContext _localctx = new PreDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_preDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2781); + match(DEC); + setState(2782); + unaryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnaryExpressionNotPlusMinusContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode TILDE() { return getToken(Java8Parser.TILDE, 0); } + public UnaryExpressionContext unaryExpression() { + return getRuleContext(UnaryExpressionContext.class,0); + } + public TerminalNode BANG() { return getToken(Java8Parser.BANG, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterUnaryExpressionNotPlusMinus(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitUnaryExpressionNotPlusMinus(this); + } + } + + public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { + UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); + enterRule(_localctx, 458, RULE_unaryExpressionNotPlusMinus); + try { + setState(2790); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2784); + postfixExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2785); + match(TILDE); + setState(2786); + unaryExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2787); + match(BANG); + setState(2788); + unaryExpression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2789); + castExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPostfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPostfixExpression(this); + } + } + + public final PostfixExpressionContext postfixExpression() throws RecognitionException { + PostfixExpressionContext _localctx = new PostfixExpressionContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_postfixExpression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2794); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { + case 1: + { + setState(2792); + primary(); + } + break; + case 2: + { + setState(2793); + expressionName(); + } + break; + } + setState(2800); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(2798); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INC: + { + setState(2796); + postIncrementExpression_lf_postfixExpression(); + } + break; + case DEC: + { + setState(2797); + postDecrementExpression_lf_postfixExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(2802); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostIncrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode INC() { return getToken(Java8Parser.INC, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPostIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPostIncrementExpression(this); + } + } + + public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { + PostIncrementExpressionContext _localctx = new PostIncrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_postIncrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2803); + postfixExpression(); + setState(2804); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostIncrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public TerminalNode INC() { return getToken(Java8Parser.INC, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPostIncrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 464, RULE_postIncrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2806); + match(INC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostDecrementExpressionContext extends ParserRuleContext { + public PostfixExpressionContext postfixExpression() { + return getRuleContext(PostfixExpressionContext.class,0); + } + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPostDecrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitPostDecrementExpression(this); + } + } + + public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { + PostDecrementExpressionContext _localctx = new PostDecrementExpressionContext(_ctx, getState()); + enterRule(_localctx, 466, RULE_postDecrementExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2808); + postfixExpression(); + setState(2809); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PostDecrementExpression_lf_postfixExpressionContext extends ParserRuleContext { + public TerminalNode DEC() { return getToken(Java8Parser.DEC, 0); } + 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 Java8ParserListener ) ((Java8ParserListener)listener).enterPostDecrementExpression_lf_postfixExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)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, 468, RULE_postDecrementExpression_lf_postfixExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2811); + match(DEC); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CastExpressionContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java8Parser.LPAREN, 0); } + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java8Parser.RPAREN, 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 Java8ParserListener ) ((Java8ParserListener)listener).enterCastExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java8ParserListener ) ((Java8ParserListener)listener).exitCastExpression(this); + } + } + + public final CastExpressionContext castExpression() throws RecognitionException { + CastExpressionContext _localctx = new CastExpressionContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_castExpression); + int _la; + try { + setState(2840); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2813); + match(LPAREN); + setState(2814); + primitiveType(); + setState(2815); + match(RPAREN); + setState(2816); + unaryExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2818); + match(LPAREN); + setState(2819); + referenceType(); + setState(2823); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2820); + additionalBound(); + } + } + setState(2825); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2826); + match(RPAREN); + setState(2827); + unaryExpressionNotPlusMinus(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2829); + match(LPAREN); + setState(2830); + referenceType(); + setState(2834); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(2831); + additionalBound(); + } + } + setState(2836); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2837); + match(RPAREN); + setState(2838); + 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 25: + return packageName_sempred((PackageNameContext)_localctx, predIndex); + case 27: + return packageOrTypeName_sempred((PackageOrTypeNameContext)_localctx, predIndex); + case 30: + return ambiguousName_sempred((AmbiguousNameContext)_localctx, predIndex); + case 216: + return conditionalOrExpression_sempred((ConditionalOrExpressionContext)_localctx, predIndex); + case 217: + return conditionalAndExpression_sempred((ConditionalAndExpressionContext)_localctx, predIndex); + case 218: + return inclusiveOrExpression_sempred((InclusiveOrExpressionContext)_localctx, predIndex); + case 219: + return exclusiveOrExpression_sempred((ExclusiveOrExpressionContext)_localctx, predIndex); + case 220: + return andExpression_sempred((AndExpressionContext)_localctx, predIndex); + case 221: + return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); + case 222: + return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); + case 223: + return shiftExpression_sempred((ShiftExpressionContext)_localctx, predIndex); + case 224: + return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); + case 225: + 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 String _serializedATNSegment0 = + "\u0004\u0001k\u0b1b\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+ + "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002"+ + "\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007\u0002"+ + "\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b\u0002"+ + "\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007\u000f"+ + "\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007\u0012"+ + "\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007\u0015"+ + "\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007\u0018"+ + "\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007\u001b"+ + "\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007\u001e"+ + "\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007\"\u0002"+ + "#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007\'\u0002"+ + "(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007,\u0002"+ + "-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u00071\u0002"+ + "2\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u00076\u0002"+ + "7\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007;\u0002"+ + "<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007@\u0002"+ + "A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007E\u0002"+ + "F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007J\u0002"+ + "K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007O\u0002"+ + "P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007T\u0002"+ + "U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007Y\u0002"+ + "Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007^\u0002"+ + "_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007c\u0002"+ + "d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007h\u0002"+ + "i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007m\u0002"+ + "n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007r\u0002"+ + "s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007w\u0002"+ + "x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007|\u0002"+ + "}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007\u0080"+ + "\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007\u0083"+ + "\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007\u0086"+ + "\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007\u0089"+ + "\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007\u008c"+ + "\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007\u008f"+ + "\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007\u0092"+ + "\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007\u0095"+ + "\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007\u0098"+ + "\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007\u009b"+ + "\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0002\u009e\u0007\u009e"+ + "\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0\u0002\u00a1\u0007\u00a1"+ + "\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3\u0002\u00a4\u0007\u00a4"+ + "\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6\u0002\u00a7\u0007\u00a7"+ + "\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9\u0002\u00aa\u0007\u00aa"+ + "\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac\u0002\u00ad\u0007\u00ad"+ + "\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af\u0002\u00b0\u0007\u00b0"+ + "\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2\u0002\u00b3\u0007\u00b3"+ + "\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5\u0002\u00b6\u0007\u00b6"+ + "\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8\u0002\u00b9\u0007\u00b9"+ + "\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb\u0002\u00bc\u0007\u00bc"+ + "\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be\u0002\u00bf\u0007\u00bf"+ + "\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1\u0002\u00c2\u0007\u00c2"+ + "\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4\u0002\u00c5\u0007\u00c5"+ + "\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7\u0002\u00c8\u0007\u00c8"+ + "\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca\u0002\u00cb\u0007\u00cb"+ + "\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd\u0002\u00ce\u0007\u00ce"+ + "\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0\u0002\u00d1\u0007\u00d1"+ + "\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3\u0002\u00d4\u0007\u00d4"+ + "\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6\u0002\u00d7\u0007\u00d7"+ + "\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9\u0002\u00da\u0007\u00da"+ + "\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc\u0002\u00dd\u0007\u00dd"+ + "\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df\u0002\u00e0\u0007\u00e0"+ + "\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2\u0002\u00e3\u0007\u00e3"+ + "\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5\u0002\u00e6\u0007\u00e6"+ + "\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8\u0002\u00e9\u0007\u00e9"+ + "\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb\u0001\u0000\u0001\u0000"+ + "\u0001\u0001\u0005\u0001\u01dc\b\u0001\n\u0001\f\u0001\u01df\t\u0001\u0001"+ + "\u0001\u0001\u0001\u0005\u0001\u01e3\b\u0001\n\u0001\f\u0001\u01e6\t\u0001"+ + "\u0001\u0001\u0003\u0001\u01e9\b\u0001\u0001\u0002\u0001\u0002\u0003\u0002"+ + "\u01ed\b\u0002\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0003\u0005\u01f6\b\u0005\u0001\u0006\u0001\u0006"+ + "\u0003\u0006\u01fa\b\u0006\u0001\u0006\u0001\u0006\u0005\u0006\u01fe\b"+ + "\u0006\n\u0006\f\u0006\u0201\t\u0006\u0001\u0007\u0005\u0007\u0204\b\u0007"+ + "\n\u0007\f\u0007\u0207\t\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u020b"+ + "\b\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0005\u0007\u0210\b\u0007"+ + "\n\u0007\f\u0007\u0213\t\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u0217"+ + "\b\u0007\u0003\u0007\u0219\b\u0007\u0001\b\u0001\b\u0005\b\u021d\b\b\n"+ + "\b\f\b\u0220\t\b\u0001\b\u0001\b\u0003\b\u0224\b\b\u0001\t\u0005\t\u0227"+ + "\b\t\n\t\f\t\u022a\t\t\u0001\t\u0001\t\u0003\t\u022e\b\t\u0001\n\u0001"+ + "\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\r\u0005\r\u0237\b\r\n"+ + "\r\f\r\u023a\t\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003"+ + "\u000e\u0247\b\u000e\u0001\u000f\u0005\u000f\u024a\b\u000f\n\u000f\f\u000f"+ + "\u024d\t\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f\u0252\b"+ + "\u000f\n\u000f\f\u000f\u0255\t\u000f\u0001\u000f\u0001\u000f\u0005\u000f"+ + "\u0259\b\u000f\n\u000f\f\u000f\u025c\t\u000f\u0001\u0010\u0005\u0010\u025f"+ + "\b\u0010\n\u0010\f\u0010\u0262\t\u0010\u0001\u0010\u0001\u0010\u0003\u0010"+ + "\u0266\b\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012"+ + "\u0001\u0012\u0001\u0012\u0005\u0012\u026f\b\u0012\n\u0012\f\u0012\u0272"+ + "\t\u0012\u0003\u0012\u0274\b\u0012\u0001\u0013\u0001\u0013\u0001\u0013"+ + "\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0005\u0015\u0280\b\u0015\n\u0015\f\u0015\u0283\t\u0015\u0001"+ + "\u0016\u0001\u0016\u0003\u0016\u0287\b\u0016\u0001\u0017\u0005\u0017\u028a"+ + "\b\u0017\n\u0017\f\u0017\u028d\t\u0017\u0001\u0017\u0001\u0017\u0003\u0017"+ + "\u0291\b\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0003\u0018"+ + "\u0297\b\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0005\u0019\u029f\b\u0019\n\u0019\f\u0019\u02a2\t\u0019\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u02a9"+ + "\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0005\u001b\u02b1\b\u001b\n\u001b\f\u001b\u02b4\t\u001b\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0003\u001c\u02bb\b\u001c"+ + "\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e"+ + "\u0001\u001e\u0001\u001e\u0005\u001e\u02c5\b\u001e\n\u001e\f\u001e\u02c8"+ + "\t\u001e\u0001\u001f\u0003\u001f\u02cb\b\u001f\u0001\u001f\u0005\u001f"+ + "\u02ce\b\u001f\n\u001f\f\u001f\u02d1\t\u001f\u0001\u001f\u0005\u001f\u02d4"+ + "\b\u001f\n\u001f\f\u001f\u02d7\t\u001f\u0001\u001f\u0001\u001f\u0001 "+ + "\u0005 \u02dc\b \n \f \u02df\t \u0001 \u0001 \u0001 \u0001 \u0001!\u0001"+ + "!\u0001\"\u0001\"\u0001\"\u0001\"\u0003\"\u02eb\b\"\u0001#\u0001#\u0001"+ + "#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001"+ + "%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ + "&\u0001&\u0001\'\u0001\'\u0001\'\u0003\'\u0308\b\'\u0001(\u0001(\u0003"+ + "(\u030c\b(\u0001)\u0005)\u030f\b)\n)\f)\u0312\t)\u0001)\u0001)\u0001)"+ + "\u0003)\u0317\b)\u0001)\u0003)\u031a\b)\u0001)\u0003)\u031d\b)\u0001)"+ + "\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0003"+ + "*\u0329\b*\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0005,\u0332"+ + "\b,\n,\f,\u0335\t,\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001/\u0001"+ + "/\u0001/\u0005/\u0340\b/\n/\f/\u0343\t/\u00010\u00010\u00050\u0347\b0"+ + "\n0\f0\u034a\t0\u00010\u00010\u00011\u00011\u00011\u00011\u00031\u0352"+ + "\b1\u00012\u00012\u00012\u00012\u00012\u00032\u0359\b2\u00013\u00053\u035c"+ + "\b3\n3\f3\u035f\t3\u00013\u00013\u00013\u00013\u00014\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00014\u00034\u036d\b4\u00015\u00015\u00015\u0005"+ + "5\u0372\b5\n5\f5\u0375\t5\u00016\u00016\u00016\u00036\u037a\b6\u00017"+ + "\u00017\u00037\u037e\b7\u00018\u00018\u00038\u0382\b8\u00019\u00019\u0003"+ + "9\u0386\b9\u0001:\u0001:\u0003:\u038a\b:\u0001;\u0001;\u0001;\u0003;\u038f"+ + "\b;\u0001<\u0001<\u0003<\u0393\b<\u0001<\u0001<\u0005<\u0397\b<\n<\f<"+ + "\u039a\t<\u0001=\u0001=\u0003=\u039e\b=\u0001=\u0001=\u0001=\u0005=\u03a3"+ + "\b=\n=\f=\u03a6\t=\u0001=\u0001=\u0003=\u03aa\b=\u0003=\u03ac\b=\u0001"+ + ">\u0001>\u0005>\u03b0\b>\n>\f>\u03b3\t>\u0001>\u0001>\u0003>\u03b7\b>"+ + "\u0001?\u0001?\u0003?\u03bb\b?\u0001@\u0001@\u0001A\u0001A\u0001B\u0001"+ + "B\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001"+ + "D\u0001D\u0003D\u03ce\bD\u0001E\u0005E\u03d1\bE\nE\fE\u03d4\tE\u0001E"+ + "\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0003F\u03e3\bF\u0001G\u0001G\u0001G\u0003G\u03e8\bG\u0001"+ + "G\u0001G\u0005G\u03ec\bG\nG\fG\u03ef\tG\u0001G\u0001G\u0001G\u0003G\u03f4"+ + "\bG\u0003G\u03f6\bG\u0001H\u0001H\u0003H\u03fa\bH\u0001I\u0001I\u0001"+ + "I\u0003I\u03ff\bI\u0001I\u0001I\u0003I\u0403\bI\u0001J\u0001J\u0001J\u0001"+ + "J\u0001J\u0001J\u0003J\u040b\bJ\u0001K\u0001K\u0001K\u0005K\u0410\bK\n"+ + "K\fK\u0413\tK\u0001K\u0001K\u0001K\u0005K\u0418\bK\nK\fK\u041b\tK\u0003"+ + "K\u041d\bK\u0001L\u0005L\u0420\bL\nL\fL\u0423\tL\u0001L\u0001L\u0001L"+ + "\u0001M\u0001M\u0003M\u042a\bM\u0001N\u0005N\u042d\bN\nN\fN\u0430\tN\u0001"+ + "N\u0001N\u0005N\u0434\bN\nN\fN\u0437\tN\u0001N\u0001N\u0001N\u0001N\u0003"+ + "N\u043d\bN\u0001O\u0005O\u0440\bO\nO\fO\u0443\tO\u0001O\u0001O\u0001O"+ + "\u0003O\u0448\bO\u0001O\u0001O\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001"+ + "Q\u0005Q\u0452\bQ\nQ\fQ\u0455\tQ\u0001R\u0001R\u0003R\u0459\bR\u0001S"+ + "\u0001S\u0003S\u045d\bS\u0001T\u0001T\u0001U\u0001U\u0001U\u0001V\u0005"+ + "V\u0465\bV\nV\fV\u0468\tV\u0001V\u0001V\u0003V\u046c\bV\u0001V\u0001V"+ + "\u0001W\u0001W\u0001W\u0001W\u0003W\u0474\bW\u0001X\u0003X\u0477\bX\u0001"+ + "X\u0001X\u0001X\u0003X\u047c\bX\u0001X\u0001X\u0001Y\u0001Y\u0001Z\u0001"+ + "Z\u0003Z\u0484\bZ\u0001Z\u0003Z\u0487\bZ\u0001Z\u0001Z\u0001[\u0003[\u048c"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u0491\b[\u0001[\u0001[\u0001[\u0003[\u0496"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u049b\b[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0003[\u04a2\b[\u0001[\u0001[\u0001[\u0003[\u04a7\b[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0003[\u04af\b[\u0001[\u0001[\u0001[\u0003[\u04b4"+ + "\b[\u0001[\u0001[\u0001[\u0003[\u04b9\b[\u0001\\\u0005\\\u04bc\b\\\n\\"+ + "\f\\\u04bf\t\\\u0001\\\u0001\\\u0001\\\u0003\\\u04c4\b\\\u0001\\\u0001"+ + "\\\u0001]\u0001]\u0003]\u04ca\b]\u0001]\u0003]\u04cd\b]\u0001]\u0003]"+ + "\u04d0\b]\u0001]\u0001]\u0001^\u0001^\u0001^\u0005^\u04d7\b^\n^\f^\u04da"+ + "\t^\u0001_\u0005_\u04dd\b_\n_\f_\u04e0\t_\u0001_\u0001_\u0001_\u0003_"+ + "\u04e5\b_\u0001_\u0003_\u04e8\b_\u0001_\u0003_\u04eb\b_\u0001`\u0001`"+ + "\u0001a\u0001a\u0005a\u04f1\ba\na\fa\u04f4\ta\u0001b\u0001b\u0003b\u04f8"+ + "\bb\u0001c\u0005c\u04fb\bc\nc\fc\u04fe\tc\u0001c\u0001c\u0001c\u0003c"+ + "\u0503\bc\u0001c\u0003c\u0506\bc\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001d\u0003d\u0511\bd\u0001e\u0001e\u0001e\u0001f\u0001"+ + "f\u0005f\u0518\bf\nf\ff\u051b\tf\u0001f\u0001f\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0003g\u0524\bg\u0001h\u0005h\u0527\bh\nh\fh\u052a\th\u0001h"+ + "\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001i\u0003i\u0534\bi\u0001"+ + "j\u0005j\u0537\bj\nj\fj\u053a\tj\u0001j\u0001j\u0001j\u0001k\u0001k\u0001"+ + "k\u0001k\u0001k\u0001k\u0003k\u0545\bk\u0001l\u0005l\u0548\bl\nl\fl\u054b"+ + "\tl\u0001l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0005m\u0554\bm\n"+ + "m\fm\u0557\tm\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001n\u0003n"+ + "\u0560\bn\u0001o\u0005o\u0563\bo\no\fo\u0566\to\u0001o\u0001o\u0001o\u0001"+ + "o\u0001o\u0003o\u056d\bo\u0001o\u0003o\u0570\bo\u0001o\u0001o\u0001p\u0001"+ + "p\u0001p\u0003p\u0577\bp\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0003"+ + "r\u057f\br\u0001s\u0001s\u0001s\u0001s\u0003s\u0585\bs\u0001s\u0001s\u0001"+ + "t\u0001t\u0001t\u0005t\u058c\bt\nt\ft\u058f\tt\u0001u\u0001u\u0001u\u0001"+ + "u\u0001v\u0001v\u0001v\u0003v\u0598\bv\u0001w\u0001w\u0003w\u059c\bw\u0001"+ + "w\u0003w\u059f\bw\u0001w\u0001w\u0001x\u0001x\u0001x\u0005x\u05a6\bx\n"+ + "x\fx\u05a9\tx\u0001y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z"+ + "\u0001z\u0001{\u0001{\u0003{\u05b6\b{\u0001{\u0003{\u05b9\b{\u0001{\u0001"+ + "{\u0001|\u0001|\u0001|\u0005|\u05c0\b|\n|\f|\u05c3\t|\u0001}\u0001}\u0003"+ + "}\u05c7\b}\u0001}\u0001}\u0001~\u0004~\u05cc\b~\u000b~\f~\u05cd\u0001"+ + "\u007f\u0001\u007f\u0001\u007f\u0003\u007f\u05d3\b\u007f\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0081\u0005\u0081\u05d9\b\u0081\n\u0081\f\u0081"+ + "\u05dc\t\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0003\u0082\u05e7\b\u0082"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0003\u0083"+ + "\u05ee\b\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0003\u0084\u05fc\b\u0084\u0001\u0085\u0001\u0085\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087"+ + "\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0003\u0089"+ + "\u0612\b\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c"+ + "\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0003\u008d\u0634\b\u008d\u0001\u008e"+ + "\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008f"+ + "\u0001\u008f\u0005\u008f\u063e\b\u008f\n\u008f\f\u008f\u0641\t\u008f\u0001"+ + "\u008f\u0005\u008f\u0644\b\u008f\n\u008f\f\u008f\u0647\t\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091"+ + "\u0005\u0091\u0650\b\u0091\n\u0091\f\u0091\u0653\t\u0091\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0003\u0092\u065f\b\u0092\u0001\u0093\u0001"+ + "\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0094\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0003\u0097\u0679"+ + "\b\u0097\u0001\u0098\u0001\u0098\u0003\u0098\u067d\b\u0098\u0001\u0099"+ + "\u0001\u0099\u0001\u0099\u0003\u0099\u0682\b\u0099\u0001\u0099\u0001\u0099"+ + "\u0003\u0099\u0686\b\u0099\u0001\u0099\u0001\u0099\u0003\u0099\u068a\b"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0003\u009a\u0692\b\u009a\u0001\u009a\u0001\u009a\u0003\u009a\u0696"+ + "\b\u009a\u0001\u009a\u0001\u009a\u0003\u009a\u069a\b\u009a\u0001\u009a"+ + "\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0003\u009b\u06a1\b\u009b"+ + "\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0005\u009d"+ + "\u06a8\b\u009d\n\u009d\f\u009d\u06ab\t\u009d\u0001\u009e\u0001\u009e\u0001"+ + "\u009e\u0005\u009e\u06b0\b\u009e\n\u009e\f\u009e\u06b3\t\u009e\u0001\u009e"+ + "\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0005\u009f\u06bf\b\u009f\n\u009f"+ + "\f\u009f\u06c2\t\u009f\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u009f"+ + "\u0001\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0003\u00a0"+ + "\u06cd\b\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0003\u00a1"+ + "\u06d3\b\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2\u0001\u00a2\u0003\u00a2"+ + "\u06d9\b\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3"+ + "\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a4"+ + "\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0001\u00a5\u0003\u00a5\u06ee\b\u00a5\u0001\u00a5\u0001\u00a5"+ + "\u0001\u00a5\u0003\u00a5\u06f3\b\u00a5\u0001\u00a6\u0001\u00a6\u0005\u00a6"+ + "\u06f7\b\u00a6\n\u00a6\f\u00a6\u06fa\t\u00a6\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0005\u00a8\u0703"+ + "\b\u00a8\n\u00a8\f\u00a8\u0706\t\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8"+ + "\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0005\u00a9\u070e\b\u00a9\n\u00a9"+ + "\f\u00a9\u0711\t\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab"+ + "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0003\u00ab\u071a\b\u00ab\u0001\u00ab"+ + "\u0003\u00ab\u071d\b\u00ab\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0003\u00ac"+ + "\u0722\b\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad"+ + "\u0005\u00ad\u0729\b\u00ad\n\u00ad\f\u00ad\u072c\t\u00ad\u0001\u00ae\u0005"+ + "\u00ae\u072f\b\u00ae\n\u00ae\f\u00ae\u0732\t\u00ae\u0001\u00ae\u0001\u00ae"+ + "\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00af\u0001\u00af\u0003\u00af"+ + "\u073b\b\u00af\u0001\u00af\u0005\u00af\u073e\b\u00af\n\u00af\f\u00af\u0741"+ + "\t\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0005\u00b0\u0747"+ + "\b\u00b0\n\u00b0\f\u00b0\u074a\t\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ + "\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0003\u00b0"+ + "\u0760\b\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b2"+ + "\u0001\u00b2\u0005\u00b2\u0768\b\u00b2\n\u00b2\f\u00b2\u076b\t\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0003\u00b2\u0780\b\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0003\u00b3\u0787\b\u00b3\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0003\u00b5\u078f\b\u00b5\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0005\u00b6\u0795\b\u00b6\n"+ + "\u00b6\f\u00b6\u0798\t\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0005\u00b6\u07a0\b\u00b6\n\u00b6\f\u00b6"+ + "\u07a3\t\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6"+ + "\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0003\u00b6\u07b9\b\u00b6\u0001\u00b7"+ + "\u0001\u00b7\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0005\u00b8"+ + "\u07c1\b\u00b8\n\u00b8\f\u00b8\u07c4\t\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0005\u00b8\u07cc\b\u00b8\n"+ + "\u00b8\f\u00b8\u07cf\t\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0003\u00b8\u07e4\b\u00b8\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u07e8\b\u00b9\u0001\u00b9\u0005\u00b9\u07eb"+ + "\b\u00b9\n\u00b9\f\u00b9\u07ee\t\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9"+ + "\u0005\u00b9\u07f3\b\u00b9\n\u00b9\f\u00b9\u07f6\t\u00b9\u0001\u00b9\u0005"+ + "\u00b9\u07f9\b\u00b9\n\u00b9\f\u00b9\u07fc\t\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u07ff\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u0803\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0807\b\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u080d\b\u00b9\u0001\u00b9\u0005\u00b9\u0810"+ + "\b\u00b9\n\u00b9\f\u00b9\u0813\t\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u0817\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u081b\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u081f\b\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0825\b\u00b9\u0001\u00b9\u0005\u00b9\u0828"+ + "\b\u00b9\n\u00b9\f\u00b9\u082b\t\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9"+ + "\u082f\b\u00b9\u0001\u00b9\u0001\u00b9\u0003\u00b9\u0833\b\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0003\u00b9\u0837\b\u00b9\u0003\u00b9\u0839\b\u00b9"+ + "\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u083e\b\u00ba\u0001\u00ba"+ + "\u0005\u00ba\u0841\b\u00ba\n\u00ba\f\u00ba\u0844\t\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0003\u00ba\u0848\b\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u084c"+ + "\b\u00ba\u0001\u00ba\u0001\u00ba\u0003\u00ba\u0850\b\u00ba\u0001\u00bb"+ + "\u0001\u00bb\u0003\u00bb\u0854\b\u00bb\u0001\u00bb\u0005\u00bb\u0857\b"+ + "\u00bb\n\u00bb\f\u00bb\u085a\t\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb"+ + "\u0005\u00bb\u085f\b\u00bb\n\u00bb\f\u00bb\u0862\t\u00bb\u0001\u00bb\u0005"+ + "\u00bb\u0865\b\u00bb\n\u00bb\f\u00bb\u0868\t\u00bb\u0001\u00bb\u0003\u00bb"+ + "\u086b\b\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb\u086f\b\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u0873\b\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u0879\b\u00bb\u0001\u00bb\u0005\u00bb\u087c"+ + "\b\u00bb\n\u00bb\f\u00bb\u087f\t\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb"+ + "\u0883\b\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb\u0887\b\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u088b\b\u00bb\u0003\u00bb\u088d\b\u00bb"+ + "\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0003\u00bc\u0892\b\u00bc\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd"+ + "\u0003\u00bd\u08a1\b\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf"+ + "\u0001\u00bf\u0001\u00bf\u0003\u00bf\u08af\b\u00bf\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08bb\b\u00c0\u0001\u00c0\u0001\u00c0"+ + "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0005\u00c0\u08c2\b\u00c0\n\u00c0"+ + "\f\u00c0\u08c5\t\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1"+ + "\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0005\u00c1"+ + "\u08d0\b\u00c1\n\u00c1\f\u00c1\u08d3\t\u00c1\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0003\u00c2\u08df\b\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0005\u00c2\u08e6\b\u00c2\n\u00c2\f\u00c2"+ + "\u08e9\t\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u08ee\b"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u08f5\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u08fa"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u0901\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u0906"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u090d\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u0912"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u0919\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u091e"+ + "\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0003\u00c3\u0926\b\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0003"+ + "\u00c3\u092b\b\u00c3\u0001\u00c3\u0001\u00c3\u0003\u00c3\u092f\b\u00c3"+ + "\u0001\u00c4\u0001\u00c4\u0003\u00c4\u0933\b\u00c4\u0001\u00c4\u0001\u00c4"+ + "\u0001\u00c4\u0003\u00c4\u0938\b\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u093f\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0946\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u094b\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0952\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0957\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u095e\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0963\b\u00c5\u0001\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u096b\b\u00c5"+ + "\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0003\u00c5\u0970\b\u00c5\u0001\u00c5"+ + "\u0001\u00c5\u0003\u00c5\u0974\b\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6"+ + "\u0005\u00c6\u0979\b\u00c6\n\u00c6\f\u00c6\u097c\t\u00c6\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0003\u00c7\u0981\b\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u0988\b\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u098f\b\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u0996"+ + "\b\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0003\u00c7\u099e\b\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0003\u00c7\u09a5\b\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0003\u00c7\u09ad\b\u00c7\u0001"+ + "\u00c8\u0001\u00c8\u0003\u00c8\u09b1\b\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09b8\b\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09bf\b\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09c6"+ + "\b\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0003\u00c9\u09ce\b\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0003\u00c9\u09d5\b\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u09dd\b\u00c9\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09e3\b\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09e9\b\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0003\u00ca\u09f5\b\u00ca\u0001"+ + "\u00cb\u0001\u00cb\u0005\u00cb\u09f9\b\u00cb\n\u00cb\f\u00cb\u09fc\t\u00cb"+ + "\u0001\u00cc\u0005\u00cc\u09ff\b\u00cc\n\u00cc\f\u00cc\u0a02\t\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00ce\u0001\u00ce\u0003\u00ce\u0a0c\b\u00ce\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0003\u00d0\u0a15"+ + "\b\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0003"+ + "\u00d0\u0a1c\b\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0005\u00d1\u0a21"+ + "\b\u00d1\n\u00d1\f\u00d1\u0a24\t\u00d1\u0001\u00d2\u0001\u00d2\u0003\u00d2"+ + "\u0a28\b\u00d2\u0001\u00d3\u0001\u00d3\u0003\u00d3\u0a2c\b\u00d3\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0003\u00d5\u0a35\b\u00d5\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001"+ + "\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0003"+ + "\u00d7\u0a40\b\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0005\u00d8\u0a48\b\u00d8\n\u00d8\f\u00d8\u0a4b\t\u00d8"+ + "\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0005\u00d9\u0a53\b\u00d9\n\u00d9\f\u00d9\u0a56\t\u00d9\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0005\u00da\u0a5e"+ + "\b\u00da\n\u00da\f\u00da\u0a61\t\u00da\u0001\u00db\u0001\u00db\u0001\u00db"+ + "\u0001\u00db\u0001\u00db\u0001\u00db\u0005\u00db\u0a69\b\u00db\n\u00db"+ + "\f\u00db\u0a6c\t\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc"+ + "\u0001\u00dc\u0001\u00dc\u0005\u00dc\u0a74\b\u00dc\n\u00dc\f\u00dc\u0a77"+ + "\t\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0005\u00dd\u0a82\b\u00dd\n"+ + "\u00dd\f\u00dd\u0a85\t\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0005\u00de\u0a99\b\u00de\n\u00de\f\u00de"+ + "\u0a9c\t\u00de\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0001\u00df\u0005\u00df"+ + "\u0aae\b\u00df\n\u00df\f\u00df\u0ab1\t\u00df\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0005\u00e0\u0abc\b\u00e0\n\u00e0\f\u00e0\u0abf\t\u00e0\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0005\u00e1"+ + "\u0acd\b\u00e1\n\u00e1\f\u00e1\u0ad0\t\u00e1\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0003\u00e2\u0ad9"+ + "\b\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001"+ + "\u00e5\u0003\u00e5\u0ae7\b\u00e5\u0001\u00e6\u0001\u00e6\u0003\u00e6\u0aeb"+ + "\b\u00e6\u0001\u00e6\u0001\u00e6\u0005\u00e6\u0aef\b\u00e6\n\u00e6\f\u00e6"+ + "\u0af2\t\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00eb"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0005\u00eb\u0b06\b\u00eb\n\u00eb\f\u00eb\u0b09\t\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0005"+ + "\u00eb\u0b11\b\u00eb\n\u00eb\f\u00eb\u0b14\t\u00eb\u0001\u00eb\u0001\u00eb"+ + "\u0001\u00eb\u0003\u00eb\u0b19\b\u00eb\u0001\u00eb\u0000\r26<\u01b0\u01b2"+ + "\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u00ec\u0000\u0002\u0004"+ + "\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \""+ + "$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086"+ + "\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e"+ + "\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6"+ + "\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce"+ + "\u00d0\u00d2\u00d4\u00d6\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"+ + "\u0000\u0004\u0001\u000038\u0005\u0000\u0005\u0005\b\b\u001b\u001b\u001d"+ + "\u001d%%\u0002\u0000\u000e\u000e\u0014\u0014\u0002\u0000BB[e\u0c0c\u0000"+ + "\u01d8\u0001\u0000\u0000\u0000\u0002\u01e8\u0001\u0000\u0000\u0000\u0004"+ + "\u01ec\u0001\u0000\u0000\u0000\u0006\u01ee\u0001\u0000\u0000\u0000\b\u01f0"+ + "\u0001\u0000\u0000\u0000\n\u01f5\u0001\u0000\u0000\u0000\f\u01f9\u0001"+ + "\u0000\u0000\u0000\u000e\u0218\u0001\u0000\u0000\u0000\u0010\u021a\u0001"+ + "\u0000\u0000\u0000\u0012\u0228\u0001\u0000\u0000\u0000\u0014\u022f\u0001"+ + "\u0000\u0000\u0000\u0016\u0231\u0001\u0000\u0000\u0000\u0018\u0233\u0001"+ + "\u0000\u0000\u0000\u001a\u0238\u0001\u0000\u0000\u0000\u001c\u0246\u0001"+ + "\u0000\u0000\u0000\u001e\u024b\u0001\u0000\u0000\u0000 \u0260\u0001\u0000"+ + "\u0000\u0000\"\u0267\u0001\u0000\u0000\u0000$\u0273\u0001\u0000\u0000"+ + "\u0000&\u0275\u0001\u0000\u0000\u0000(\u0278\u0001\u0000\u0000\u0000*"+ + "\u027c\u0001\u0000\u0000\u0000,\u0286\u0001\u0000\u0000\u0000.\u028b\u0001"+ + "\u0000\u0000\u00000\u0296\u0001\u0000\u0000\u00002\u0298\u0001\u0000\u0000"+ + "\u00004\u02a8\u0001\u0000\u0000\u00006\u02aa\u0001\u0000\u0000\u00008"+ + "\u02ba\u0001\u0000\u0000\u0000:\u02bc\u0001\u0000\u0000\u0000<\u02be\u0001"+ + "\u0000\u0000\u0000>\u02ca\u0001\u0000\u0000\u0000@\u02dd\u0001\u0000\u0000"+ + "\u0000B\u02e4\u0001\u0000\u0000\u0000D\u02ea\u0001\u0000\u0000\u0000F"+ + "\u02ec\u0001\u0000\u0000\u0000H\u02f0\u0001\u0000\u0000\u0000J\u02f6\u0001"+ + "\u0000\u0000\u0000L\u02fd\u0001\u0000\u0000\u0000N\u0307\u0001\u0000\u0000"+ + "\u0000P\u030b\u0001\u0000\u0000\u0000R\u0310\u0001\u0000\u0000\u0000T"+ + "\u0328\u0001\u0000\u0000\u0000V\u032a\u0001\u0000\u0000\u0000X\u032e\u0001"+ + "\u0000\u0000\u0000Z\u0336\u0001\u0000\u0000\u0000\\\u0339\u0001\u0000"+ + "\u0000\u0000^\u033c\u0001\u0000\u0000\u0000`\u0344\u0001\u0000\u0000\u0000"+ + "b\u0351\u0001\u0000\u0000\u0000d\u0358\u0001\u0000\u0000\u0000f\u035d"+ + "\u0001\u0000\u0000\u0000h\u036c\u0001\u0000\u0000\u0000j\u036e\u0001\u0000"+ + "\u0000\u0000l\u0376\u0001\u0000\u0000\u0000n\u037b\u0001\u0000\u0000\u0000"+ + "p\u0381\u0001\u0000\u0000\u0000r\u0385\u0001\u0000\u0000\u0000t\u0389"+ + "\u0001\u0000\u0000\u0000v\u038e\u0001\u0000\u0000\u0000x\u0392\u0001\u0000"+ + "\u0000\u0000z\u03ab\u0001\u0000\u0000\u0000|\u03ad\u0001\u0000\u0000\u0000"+ + "~\u03b8\u0001\u0000\u0000\u0000\u0080\u03bc\u0001\u0000\u0000\u0000\u0082"+ + "\u03be\u0001\u0000\u0000\u0000\u0084\u03c0\u0001\u0000\u0000\u0000\u0086"+ + "\u03c2\u0001\u0000\u0000\u0000\u0088\u03cd\u0001\u0000\u0000\u0000\u008a"+ + "\u03d2\u0001\u0000\u0000\u0000\u008c\u03e2\u0001\u0000\u0000\u0000\u008e"+ + "\u03f5\u0001\u0000\u0000\u0000\u0090\u03f9\u0001\u0000\u0000\u0000\u0092"+ + "\u03fb\u0001\u0000\u0000\u0000\u0094\u040a\u0001\u0000\u0000\u0000\u0096"+ + "\u041c\u0001\u0000\u0000\u0000\u0098\u0421\u0001\u0000\u0000\u0000\u009a"+ + "\u0429\u0001\u0000\u0000\u0000\u009c\u043c\u0001\u0000\u0000\u0000\u009e"+ + "\u0441\u0001\u0000\u0000\u0000\u00a0\u044b\u0001\u0000\u0000\u0000\u00a2"+ + "\u044e\u0001\u0000\u0000\u0000\u00a4\u0458\u0001\u0000\u0000\u0000\u00a6"+ + "\u045c\u0001\u0000\u0000\u0000\u00a8\u045e\u0001\u0000\u0000\u0000\u00aa"+ + "\u0460\u0001\u0000\u0000\u0000\u00ac\u0466\u0001\u0000\u0000\u0000\u00ae"+ + "\u0473\u0001\u0000\u0000\u0000\u00b0\u0476\u0001\u0000\u0000\u0000\u00b2"+ + "\u047f\u0001\u0000\u0000\u0000\u00b4\u0481\u0001\u0000\u0000\u0000\u00b6"+ + "\u04b8\u0001\u0000\u0000\u0000\u00b8\u04bd\u0001\u0000\u0000\u0000\u00ba"+ + "\u04c7\u0001\u0000\u0000\u0000\u00bc\u04d3\u0001\u0000\u0000\u0000\u00be"+ + "\u04de\u0001\u0000\u0000\u0000\u00c0\u04ec\u0001\u0000\u0000\u0000\u00c2"+ + "\u04ee\u0001\u0000\u0000\u0000\u00c4\u04f7\u0001\u0000\u0000\u0000\u00c6"+ + "\u04fc\u0001\u0000\u0000\u0000\u00c8\u0510\u0001\u0000\u0000\u0000\u00ca"+ + "\u0512\u0001\u0000\u0000\u0000\u00cc\u0515\u0001\u0000\u0000\u0000\u00ce"+ + "\u0523\u0001\u0000\u0000\u0000\u00d0\u0528\u0001\u0000\u0000\u0000\u00d2"+ + "\u0533\u0001\u0000\u0000\u0000\u00d4\u0538\u0001\u0000\u0000\u0000\u00d6"+ + "\u0544\u0001\u0000\u0000\u0000\u00d8\u0549\u0001\u0000\u0000\u0000\u00da"+ + "\u0551\u0001\u0000\u0000\u0000\u00dc\u055f\u0001\u0000\u0000\u0000\u00de"+ + "\u0564\u0001\u0000\u0000\u0000\u00e0\u0576\u0001\u0000\u0000\u0000\u00e2"+ + "\u0578\u0001\u0000\u0000\u0000\u00e4\u057e\u0001\u0000\u0000\u0000\u00e6"+ + "\u0580\u0001\u0000\u0000\u0000\u00e8\u0588\u0001\u0000\u0000\u0000\u00ea"+ + "\u0590\u0001\u0000\u0000\u0000\u00ec\u0597\u0001\u0000\u0000\u0000\u00ee"+ + "\u0599\u0001\u0000\u0000\u0000\u00f0\u05a2\u0001\u0000\u0000\u0000\u00f2"+ + "\u05aa\u0001\u0000\u0000\u0000\u00f4\u05ad\u0001\u0000\u0000\u0000\u00f6"+ + "\u05b3\u0001\u0000\u0000\u0000\u00f8\u05bc\u0001\u0000\u0000\u0000\u00fa"+ + "\u05c4\u0001\u0000\u0000\u0000\u00fc\u05cb\u0001\u0000\u0000\u0000\u00fe"+ + "\u05d2\u0001\u0000\u0000\u0000\u0100\u05d4\u0001\u0000\u0000\u0000\u0102"+ + "\u05da\u0001\u0000\u0000\u0000\u0104\u05e6\u0001\u0000\u0000\u0000\u0106"+ + "\u05ed\u0001\u0000\u0000\u0000\u0108\u05fb\u0001\u0000\u0000\u0000\u010a"+ + "\u05fd\u0001\u0000\u0000\u0000\u010c\u05ff\u0001\u0000\u0000\u0000\u010e"+ + "\u0603\u0001\u0000\u0000\u0000\u0110\u0607\u0001\u0000\u0000\u0000\u0112"+ + "\u0611\u0001\u0000\u0000\u0000\u0114\u0613\u0001\u0000\u0000\u0000\u0116"+ + "\u0619\u0001\u0000\u0000\u0000\u0118\u0621\u0001\u0000\u0000\u0000\u011a"+ + "\u0633\u0001\u0000\u0000\u0000\u011c\u0635\u0001\u0000\u0000\u0000\u011e"+ + "\u063b\u0001\u0000\u0000\u0000\u0120\u064a\u0001\u0000\u0000\u0000\u0122"+ + "\u064d\u0001\u0000\u0000\u0000\u0124\u065e\u0001\u0000\u0000\u0000\u0126"+ + "\u0660\u0001\u0000\u0000\u0000\u0128\u0662\u0001\u0000\u0000\u0000\u012a"+ + "\u0668\u0001\u0000\u0000\u0000\u012c\u066e\u0001\u0000\u0000\u0000\u012e"+ + "\u0678\u0001\u0000\u0000\u0000\u0130\u067c\u0001\u0000\u0000\u0000\u0132"+ + "\u067e\u0001\u0000\u0000\u0000\u0134\u068e\u0001\u0000\u0000\u0000\u0136"+ + "\u06a0\u0001\u0000\u0000\u0000\u0138\u06a2\u0001\u0000\u0000\u0000\u013a"+ + "\u06a4\u0001\u0000\u0000\u0000\u013c\u06ac\u0001\u0000\u0000\u0000\u013e"+ + "\u06bb\u0001\u0000\u0000\u0000\u0140\u06ca\u0001\u0000\u0000\u0000\u0142"+ + "\u06d0\u0001\u0000\u0000\u0000\u0144\u06d6\u0001\u0000\u0000\u0000\u0146"+ + "\u06dc\u0001\u0000\u0000\u0000\u0148\u06e0\u0001\u0000\u0000\u0000\u014a"+ + "\u06f2\u0001\u0000\u0000\u0000\u014c\u06f4\u0001\u0000\u0000\u0000\u014e"+ + "\u06fb\u0001\u0000\u0000\u0000\u0150\u0704\u0001\u0000\u0000\u0000\u0152"+ + "\u070a\u0001\u0000\u0000\u0000\u0154\u0712\u0001\u0000\u0000\u0000\u0156"+ + "\u0715\u0001\u0000\u0000\u0000\u0158\u071e\u0001\u0000\u0000\u0000\u015a"+ + "\u0725\u0001\u0000\u0000\u0000\u015c\u0730\u0001\u0000\u0000\u0000\u015e"+ + "\u073a\u0001\u0000\u0000\u0000\u0160\u075f\u0001\u0000\u0000\u0000\u0162"+ + "\u0761\u0001\u0000\u0000\u0000\u0164\u077f\u0001\u0000\u0000\u0000\u0166"+ + "\u0786\u0001\u0000\u0000\u0000\u0168\u0788\u0001\u0000\u0000\u0000\u016a"+ + "\u078e\u0001\u0000\u0000\u0000\u016c\u07b8\u0001\u0000\u0000\u0000\u016e"+ + "\u07ba\u0001\u0000\u0000\u0000\u0170\u07e3\u0001\u0000\u0000\u0000\u0172"+ + "\u0838\u0001\u0000\u0000\u0000\u0174\u083a\u0001\u0000\u0000\u0000\u0176"+ + "\u088c\u0001\u0000\u0000\u0000\u0178\u0891\u0001\u0000\u0000\u0000\u017a"+ + "\u08a0\u0001\u0000\u0000\u0000\u017c\u08a2\u0001\u0000\u0000\u0000\u017e"+ + "\u08ae\u0001\u0000\u0000\u0000\u0180\u08ba\u0001\u0000\u0000\u0000\u0182"+ + "\u08c6\u0001\u0000\u0000\u0000\u0184\u08de\u0001\u0000\u0000\u0000\u0186"+ + "\u092e\u0001\u0000\u0000\u0000\u0188\u0930\u0001\u0000\u0000\u0000\u018a"+ + "\u0973\u0001\u0000\u0000\u0000\u018c\u0975\u0001\u0000\u0000\u0000\u018e"+ + "\u09ac\u0001\u0000\u0000\u0000\u0190\u09ae\u0001\u0000\u0000\u0000\u0192"+ + "\u09dc\u0001\u0000\u0000\u0000\u0194\u09f4\u0001\u0000\u0000\u0000\u0196"+ + "\u09f6\u0001\u0000\u0000\u0000\u0198\u0a00\u0001\u0000\u0000\u0000\u019a"+ + "\u0a07\u0001\u0000\u0000\u0000\u019c\u0a0b\u0001\u0000\u0000\u0000\u019e"+ + "\u0a0d\u0001\u0000\u0000\u0000\u01a0\u0a1b\u0001\u0000\u0000\u0000\u01a2"+ + "\u0a1d\u0001\u0000\u0000\u0000\u01a4\u0a27\u0001\u0000\u0000\u0000\u01a6"+ + "\u0a2b\u0001\u0000\u0000\u0000\u01a8\u0a2d\u0001\u0000\u0000\u0000\u01aa"+ + "\u0a34\u0001\u0000\u0000\u0000\u01ac\u0a36\u0001\u0000\u0000\u0000\u01ae"+ + "\u0a3f\u0001\u0000\u0000\u0000\u01b0\u0a41\u0001\u0000\u0000\u0000\u01b2"+ + "\u0a4c\u0001\u0000\u0000\u0000\u01b4\u0a57\u0001\u0000\u0000\u0000\u01b6"+ + "\u0a62\u0001\u0000\u0000\u0000\u01b8\u0a6d\u0001\u0000\u0000\u0000\u01ba"+ + "\u0a78\u0001\u0000\u0000\u0000\u01bc\u0a86\u0001\u0000\u0000\u0000\u01be"+ + "\u0a9d\u0001\u0000\u0000\u0000\u01c0\u0ab2\u0001\u0000\u0000\u0000\u01c2"+ + "\u0ac0\u0001\u0000\u0000\u0000\u01c4\u0ad8\u0001\u0000\u0000\u0000\u01c6"+ + "\u0ada\u0001\u0000\u0000\u0000\u01c8\u0add\u0001\u0000\u0000\u0000\u01ca"+ + "\u0ae6\u0001\u0000\u0000\u0000\u01cc\u0aea\u0001\u0000\u0000\u0000\u01ce"+ + "\u0af3\u0001\u0000\u0000\u0000\u01d0\u0af6\u0001\u0000\u0000\u0000\u01d2"+ + "\u0af8\u0001\u0000\u0000\u0000\u01d4\u0afb\u0001\u0000\u0000\u0000\u01d6"+ + "\u0b18\u0001\u0000\u0000\u0000\u01d8\u01d9\u0007\u0000\u0000\u0000\u01d9"+ + "\u0001\u0001\u0000\u0000\u0000\u01da\u01dc\u0003\u00e4r\u0000\u01db\u01da"+ + "\u0001\u0000\u0000\u0000\u01dc\u01df\u0001\u0000\u0000\u0000\u01dd\u01db"+ + "\u0001\u0000\u0000\u0000\u01dd\u01de\u0001\u0000\u0000\u0000\u01de\u01e0"+ + "\u0001\u0000\u0000\u0000\u01df\u01dd\u0001\u0000\u0000\u0000\u01e0\u01e9"+ + "\u0003\u0004\u0002\u0000\u01e1\u01e3\u0003\u00e4r\u0000\u01e2\u01e1\u0001"+ + "\u0000\u0000\u0000\u01e3\u01e6\u0001\u0000\u0000\u0000\u01e4\u01e2\u0001"+ + "\u0000\u0000\u0000\u01e4\u01e5\u0001\u0000\u0000\u0000\u01e5\u01e7\u0001"+ + "\u0000\u0000\u0000\u01e6\u01e4\u0001\u0000\u0000\u0000\u01e7\u01e9\u0005"+ + "\u0003\u0000\u0000\u01e8\u01dd\u0001\u0000\u0000\u0000\u01e8\u01e4\u0001"+ + "\u0000\u0000\u0000\u01e9\u0003\u0001\u0000\u0000\u0000\u01ea\u01ed\u0003"+ + "\u0006\u0003\u0000\u01eb\u01ed\u0003\b\u0004\u0000\u01ec\u01ea\u0001\u0000"+ + "\u0000\u0000\u01ec\u01eb\u0001\u0000\u0000\u0000\u01ed\u0005\u0001\u0000"+ + "\u0000\u0000\u01ee\u01ef\u0007\u0001\u0000\u0000\u01ef\u0007\u0001\u0000"+ + "\u0000\u0000\u01f0\u01f1\u0007\u0002\u0000\u0000\u01f1\t\u0001\u0000\u0000"+ + "\u0000\u01f2\u01f6\u0003\f\u0006\u0000\u01f3\u01f6\u0003\u001a\r\u0000"+ + "\u01f4\u01f6\u0003\u001c\u000e\u0000\u01f5\u01f2\u0001\u0000\u0000\u0000"+ + "\u01f5\u01f3\u0001\u0000\u0000\u0000\u01f5\u01f4\u0001\u0000\u0000\u0000"+ + "\u01f6\u000b\u0001\u0000\u0000\u0000\u01f7\u01fa\u0003\u0012\t\u0000\u01f8"+ + "\u01fa\u0003\u0018\f\u0000\u01f9\u01f7\u0001\u0000\u0000\u0000\u01f9\u01f8"+ + "\u0001\u0000\u0000\u0000\u01fa\u01ff\u0001\u0000\u0000\u0000\u01fb\u01fe"+ + "\u0003\u0010\b\u0000\u01fc\u01fe\u0003\u0016\u000b\u0000\u01fd\u01fb\u0001"+ + "\u0000\u0000\u0000\u01fd\u01fc\u0001\u0000\u0000\u0000\u01fe\u0201\u0001"+ + "\u0000\u0000\u0000\u01ff\u01fd\u0001\u0000\u0000\u0000\u01ff\u0200\u0001"+ + "\u0000\u0000\u0000\u0200\r\u0001\u0000\u0000\u0000\u0201\u01ff\u0001\u0000"+ + "\u0000\u0000\u0202\u0204\u0003\u00e4r\u0000\u0203\u0202\u0001\u0000\u0000"+ + "\u0000\u0204\u0207\u0001\u0000\u0000\u0000\u0205\u0203\u0001\u0000\u0000"+ + "\u0000\u0205\u0206\u0001\u0000\u0000\u0000\u0206\u0208\u0001\u0000\u0000"+ + "\u0000\u0207\u0205\u0001\u0000\u0000\u0000\u0208\u020a\u0005f\u0000\u0000"+ + "\u0209\u020b\u0003(\u0014\u0000\u020a\u0209\u0001\u0000\u0000\u0000\u020a"+ + "\u020b\u0001\u0000\u0000\u0000\u020b\u0219\u0001\u0000\u0000\u0000\u020c"+ + "\u020d\u0003\f\u0006\u0000\u020d\u0211\u0005A\u0000\u0000\u020e\u0210"+ + "\u0003\u00e4r\u0000\u020f\u020e\u0001\u0000\u0000\u0000\u0210\u0213\u0001"+ + "\u0000\u0000\u0000\u0211\u020f\u0001\u0000\u0000\u0000\u0211\u0212\u0001"+ + "\u0000\u0000\u0000\u0212\u0214\u0001\u0000\u0000\u0000\u0213\u0211\u0001"+ + "\u0000\u0000\u0000\u0214\u0216\u0005f\u0000\u0000\u0215\u0217\u0003(\u0014"+ + "\u0000\u0216\u0215\u0001\u0000\u0000\u0000\u0216\u0217\u0001\u0000\u0000"+ + "\u0000\u0217\u0219\u0001\u0000\u0000\u0000\u0218\u0205\u0001\u0000\u0000"+ + "\u0000\u0218\u020c\u0001\u0000\u0000\u0000\u0219\u000f\u0001\u0000\u0000"+ + "\u0000\u021a\u021e\u0005A\u0000\u0000\u021b\u021d\u0003\u00e4r\u0000\u021c"+ + "\u021b\u0001\u0000\u0000\u0000\u021d\u0220\u0001\u0000\u0000\u0000\u021e"+ + "\u021c\u0001\u0000\u0000\u0000\u021e\u021f\u0001\u0000\u0000\u0000\u021f"+ + "\u0221\u0001\u0000\u0000\u0000\u0220\u021e\u0001\u0000\u0000\u0000\u0221"+ + "\u0223\u0005f\u0000\u0000\u0222\u0224\u0003(\u0014\u0000\u0223\u0222\u0001"+ + "\u0000\u0000\u0000\u0223\u0224\u0001\u0000\u0000\u0000\u0224\u0011\u0001"+ + "\u0000\u0000\u0000\u0225\u0227\u0003\u00e4r\u0000\u0226\u0225\u0001\u0000"+ + "\u0000\u0000\u0227\u022a\u0001\u0000\u0000\u0000\u0228\u0226\u0001\u0000"+ + "\u0000\u0000\u0228\u0229\u0001\u0000\u0000\u0000\u0229\u022b\u0001\u0000"+ + "\u0000\u0000\u022a\u0228\u0001\u0000\u0000\u0000\u022b\u022d\u0005f\u0000"+ + "\u0000\u022c\u022e\u0003(\u0014\u0000\u022d\u022c\u0001\u0000\u0000\u0000"+ + "\u022d\u022e\u0001\u0000\u0000\u0000\u022e\u0013\u0001\u0000\u0000\u0000"+ + "\u022f\u0230\u0003\u000e\u0007\u0000\u0230\u0015\u0001\u0000\u0000\u0000"+ + "\u0231\u0232\u0003\u0010\b\u0000\u0232\u0017\u0001\u0000\u0000\u0000\u0233"+ + "\u0234\u0003\u0012\t\u0000\u0234\u0019\u0001\u0000\u0000\u0000\u0235\u0237"+ + "\u0003\u00e4r\u0000\u0236\u0235\u0001\u0000\u0000\u0000\u0237\u023a\u0001"+ + "\u0000\u0000\u0000\u0238\u0236\u0001\u0000\u0000\u0000\u0238\u0239\u0001"+ + "\u0000\u0000\u0000\u0239\u023b\u0001\u0000\u0000\u0000\u023a\u0238\u0001"+ + "\u0000\u0000\u0000\u023b\u023c\u0005f\u0000\u0000\u023c\u001b\u0001\u0000"+ + "\u0000\u0000\u023d\u023e\u0003\u0002\u0001\u0000\u023e\u023f\u0003\u001e"+ + "\u000f\u0000\u023f\u0247\u0001\u0000\u0000\u0000\u0240\u0241\u0003\f\u0006"+ + "\u0000\u0241\u0242\u0003\u001e\u000f\u0000\u0242\u0247\u0001\u0000\u0000"+ + "\u0000\u0243\u0244\u0003\u001a\r\u0000\u0244\u0245\u0003\u001e\u000f\u0000"+ + "\u0245\u0247\u0001\u0000\u0000\u0000\u0246\u023d\u0001\u0000\u0000\u0000"+ + "\u0246\u0240\u0001\u0000\u0000\u0000\u0246\u0243\u0001\u0000\u0000\u0000"+ + "\u0247\u001d\u0001\u0000\u0000\u0000\u0248\u024a\u0003\u00e4r\u0000\u0249"+ + "\u0248\u0001\u0000\u0000\u0000\u024a\u024d\u0001\u0000\u0000\u0000\u024b"+ + "\u0249\u0001\u0000\u0000\u0000\u024b\u024c\u0001\u0000\u0000\u0000\u024c"+ + "\u024e\u0001\u0000\u0000\u0000\u024d\u024b\u0001\u0000\u0000\u0000\u024e"+ + "\u024f\u0005=\u0000\u0000\u024f\u025a\u0005>\u0000\u0000\u0250\u0252\u0003"+ + "\u00e4r\u0000\u0251\u0250\u0001\u0000\u0000\u0000\u0252\u0255\u0001\u0000"+ + "\u0000\u0000\u0253\u0251\u0001\u0000\u0000\u0000\u0253\u0254\u0001\u0000"+ + "\u0000\u0000\u0254\u0256\u0001\u0000\u0000\u0000\u0255\u0253\u0001\u0000"+ + "\u0000\u0000\u0256\u0257\u0005=\u0000\u0000\u0257\u0259\u0005>\u0000\u0000"+ + "\u0258\u0253\u0001\u0000\u0000\u0000\u0259\u025c\u0001\u0000\u0000\u0000"+ + "\u025a\u0258\u0001\u0000\u0000\u0000\u025a\u025b\u0001\u0000\u0000\u0000"+ + "\u025b\u001f\u0001\u0000\u0000\u0000\u025c\u025a\u0001\u0000\u0000\u0000"+ + "\u025d\u025f\u0003\"\u0011\u0000\u025e\u025d\u0001\u0000\u0000\u0000\u025f"+ + "\u0262\u0001\u0000\u0000\u0000\u0260\u025e\u0001\u0000\u0000\u0000\u0260"+ + "\u0261\u0001\u0000\u0000\u0000\u0261\u0263\u0001\u0000\u0000\u0000\u0262"+ + "\u0260\u0001\u0000\u0000\u0000\u0263\u0265\u0005f\u0000\u0000\u0264\u0266"+ + "\u0003$\u0012\u0000\u0265\u0264\u0001\u0000\u0000\u0000\u0265\u0266\u0001"+ + "\u0000\u0000\u0000\u0266!\u0001\u0000\u0000\u0000\u0267\u0268\u0003\u00e4"+ + "r\u0000\u0268#\u0001\u0000\u0000\u0000\u0269\u026a\u0005\u0011\u0000\u0000"+ + "\u026a\u0274\u0003\u001a\r\u0000\u026b\u026c\u0005\u0011\u0000\u0000\u026c"+ + "\u0270\u0003\f\u0006\u0000\u026d\u026f\u0003&\u0013\u0000\u026e\u026d"+ + "\u0001\u0000\u0000\u0000\u026f\u0272\u0001\u0000\u0000\u0000\u0270\u026e"+ + "\u0001\u0000\u0000\u0000\u0270\u0271\u0001\u0000\u0000\u0000\u0271\u0274"+ + "\u0001\u0000\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0273\u0269"+ + "\u0001\u0000\u0000\u0000\u0273\u026b\u0001\u0000\u0000\u0000\u0274%\u0001"+ + "\u0000\u0000\u0000\u0275\u0276\u0005U\u0000\u0000\u0276\u0277\u0003\u0014"+ + "\n\u0000\u0277\'\u0001\u0000\u0000\u0000\u0278\u0279\u0005D\u0000\u0000"+ + "\u0279\u027a\u0003*\u0015\u0000\u027a\u027b\u0005C\u0000\u0000\u027b)"+ + "\u0001\u0000\u0000\u0000\u027c\u0281\u0003,\u0016\u0000\u027d\u027e\u0005"+ + "@\u0000\u0000\u027e\u0280\u0003,\u0016\u0000\u027f\u027d\u0001\u0000\u0000"+ + "\u0000\u0280\u0283\u0001\u0000\u0000\u0000\u0281\u027f\u0001\u0000\u0000"+ + "\u0000\u0281\u0282\u0001\u0000\u0000\u0000\u0282+\u0001\u0000\u0000\u0000"+ + "\u0283\u0281\u0001\u0000\u0000\u0000\u0284\u0287\u0003\n\u0005\u0000\u0285"+ + "\u0287\u0003.\u0017\u0000\u0286\u0284\u0001\u0000\u0000\u0000\u0286\u0285"+ + "\u0001\u0000\u0000\u0000\u0287-\u0001\u0000\u0000\u0000\u0288\u028a\u0003"+ + "\u00e4r\u0000\u0289\u0288\u0001\u0000\u0000\u0000\u028a\u028d\u0001\u0000"+ + "\u0000\u0000\u028b\u0289\u0001\u0000\u0000\u0000\u028b\u028c\u0001\u0000"+ + "\u0000\u0000\u028c\u028e\u0001\u0000\u0000\u0000\u028d\u028b\u0001\u0000"+ + "\u0000\u0000\u028e\u0290\u0005G\u0000\u0000\u028f\u0291\u00030\u0018\u0000"+ + "\u0290\u028f\u0001\u0000\u0000\u0000\u0290\u0291\u0001\u0000\u0000\u0000"+ + "\u0291/\u0001\u0000\u0000\u0000\u0292\u0293\u0005\u0011\u0000\u0000\u0293"+ + "\u0297\u0003\n\u0005\u0000\u0294\u0295\u0005(\u0000\u0000\u0295\u0297"+ + "\u0003\n\u0005\u0000\u0296\u0292\u0001\u0000\u0000\u0000\u0296\u0294\u0001"+ + "\u0000\u0000\u0000\u02971\u0001\u0000\u0000\u0000\u0298\u0299\u0006\u0019"+ + "\uffff\uffff\u0000\u0299\u029a\u0005f\u0000\u0000\u029a\u02a0\u0001\u0000"+ + "\u0000\u0000\u029b\u029c\n\u0001\u0000\u0000\u029c\u029d\u0005A\u0000"+ + "\u0000\u029d\u029f\u0005f\u0000\u0000\u029e\u029b\u0001\u0000\u0000\u0000"+ + "\u029f\u02a2\u0001\u0000\u0000\u0000\u02a0\u029e\u0001\u0000\u0000\u0000"+ + "\u02a0\u02a1\u0001\u0000\u0000\u0000\u02a13\u0001\u0000\u0000\u0000\u02a2"+ + "\u02a0\u0001\u0000\u0000\u0000\u02a3\u02a9\u0005f\u0000\u0000\u02a4\u02a5"+ + "\u00036\u001b\u0000\u02a5\u02a6\u0005A\u0000\u0000\u02a6\u02a7\u0005f"+ + "\u0000\u0000\u02a7\u02a9\u0001\u0000\u0000\u0000\u02a8\u02a3\u0001\u0000"+ + "\u0000\u0000\u02a8\u02a4\u0001\u0000\u0000\u0000\u02a95\u0001\u0000\u0000"+ + "\u0000\u02aa\u02ab\u0006\u001b\uffff\uffff\u0000\u02ab\u02ac\u0005f\u0000"+ + "\u0000\u02ac\u02b2\u0001\u0000\u0000\u0000\u02ad\u02ae\n\u0001\u0000\u0000"+ + "\u02ae\u02af\u0005A\u0000\u0000\u02af\u02b1\u0005f\u0000\u0000\u02b0\u02ad"+ + "\u0001\u0000\u0000\u0000\u02b1\u02b4\u0001\u0000\u0000\u0000\u02b2\u02b0"+ + "\u0001\u0000\u0000\u0000\u02b2\u02b3\u0001\u0000\u0000\u0000\u02b37\u0001"+ + "\u0000\u0000\u0000\u02b4\u02b2\u0001\u0000\u0000\u0000\u02b5\u02bb\u0005"+ + "f\u0000\u0000\u02b6\u02b7\u0003<\u001e\u0000\u02b7\u02b8\u0005A\u0000"+ + "\u0000\u02b8\u02b9\u0005f\u0000\u0000\u02b9\u02bb\u0001\u0000\u0000\u0000"+ + "\u02ba\u02b5\u0001\u0000\u0000\u0000\u02ba\u02b6\u0001\u0000\u0000\u0000"+ + "\u02bb9\u0001\u0000\u0000\u0000\u02bc\u02bd\u0005f\u0000\u0000\u02bd;"+ + "\u0001\u0000\u0000\u0000\u02be\u02bf\u0006\u001e\uffff\uffff\u0000\u02bf"+ + "\u02c0\u0005f\u0000\u0000\u02c0\u02c6\u0001\u0000\u0000\u0000\u02c1\u02c2"+ + "\n\u0001\u0000\u0000\u02c2\u02c3\u0005A\u0000\u0000\u02c3\u02c5\u0005"+ + "f\u0000\u0000\u02c4\u02c1\u0001\u0000\u0000\u0000\u02c5\u02c8\u0001\u0000"+ + "\u0000\u0000\u02c6\u02c4\u0001\u0000\u0000\u0000\u02c6\u02c7\u0001\u0000"+ + "\u0000\u0000\u02c7=\u0001\u0000\u0000\u0000\u02c8\u02c6\u0001\u0000\u0000"+ + "\u0000\u02c9\u02cb\u0003@ \u0000\u02ca\u02c9\u0001\u0000\u0000\u0000\u02ca"+ + "\u02cb\u0001\u0000\u0000\u0000\u02cb\u02cf\u0001\u0000\u0000\u0000\u02cc"+ + "\u02ce\u0003D\"\u0000\u02cd\u02cc\u0001\u0000\u0000\u0000\u02ce\u02d1"+ + "\u0001\u0000\u0000\u0000\u02cf\u02cd\u0001\u0000\u0000\u0000\u02cf\u02d0"+ + "\u0001\u0000\u0000\u0000\u02d0\u02d5\u0001\u0000\u0000\u0000\u02d1\u02cf"+ + "\u0001\u0000\u0000\u0000\u02d2\u02d4\u0003N\'\u0000\u02d3\u02d2\u0001"+ + "\u0000\u0000\u0000\u02d4\u02d7\u0001\u0000\u0000\u0000\u02d5\u02d3\u0001"+ + "\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000\u0000\u0000\u02d6\u02d8\u0001"+ + "\u0000\u0000\u0000\u02d7\u02d5\u0001\u0000\u0000\u0000\u02d8\u02d9\u0005"+ + "\u0000\u0000\u0001\u02d9?\u0001\u0000\u0000\u0000\u02da\u02dc\u0003B!"+ + "\u0000\u02db\u02da\u0001\u0000\u0000\u0000\u02dc\u02df\u0001\u0000\u0000"+ + "\u0000\u02dd\u02db\u0001\u0000\u0000\u0000\u02dd\u02de\u0001\u0000\u0000"+ + "\u0000\u02de\u02e0\u0001\u0000\u0000\u0000\u02df\u02dd\u0001\u0000\u0000"+ + "\u0000\u02e0\u02e1\u0005 \u0000\u0000\u02e1\u02e2\u00032\u0019\u0000\u02e2"+ + "\u02e3\u0005?\u0000\u0000\u02e3A\u0001\u0000\u0000\u0000\u02e4\u02e5\u0003"+ + "\u00e4r\u0000\u02e5C\u0001\u0000\u0000\u0000\u02e6\u02eb\u0003F#\u0000"+ + "\u02e7\u02eb\u0003H$\u0000\u02e8\u02eb\u0003J%\u0000\u02e9\u02eb\u0003"+ + "L&\u0000\u02ea\u02e6\u0001\u0000\u0000\u0000\u02ea\u02e7\u0001\u0000\u0000"+ + "\u0000\u02ea\u02e8\u0001\u0000\u0000\u0000\u02ea\u02e9\u0001\u0000\u0000"+ + "\u0000\u02ebE\u0001\u0000\u0000\u0000\u02ec\u02ed\u0005\u0019\u0000\u0000"+ + "\u02ed\u02ee\u00034\u001a\u0000\u02ee\u02ef\u0005?\u0000\u0000\u02efG"+ + "\u0001\u0000\u0000\u0000\u02f0\u02f1\u0005\u0019\u0000\u0000\u02f1\u02f2"+ + "\u00036\u001b\u0000\u02f2\u02f3\u0005A\u0000\u0000\u02f3\u02f4\u0005S"+ + "\u0000\u0000\u02f4\u02f5\u0005?\u0000\u0000\u02f5I\u0001\u0000\u0000\u0000"+ + "\u02f6\u02f7\u0005\u0019\u0000\u0000\u02f7\u02f8\u0005&\u0000\u0000\u02f8"+ + "\u02f9\u00034\u001a\u0000\u02f9\u02fa\u0005A\u0000\u0000\u02fa\u02fb\u0005"+ + "f\u0000\u0000\u02fb\u02fc\u0005?\u0000\u0000\u02fcK\u0001\u0000\u0000"+ + "\u0000\u02fd\u02fe\u0005\u0019\u0000\u0000\u02fe\u02ff\u0005&\u0000\u0000"+ + "\u02ff\u0300\u00034\u001a\u0000\u0300\u0301\u0005A\u0000\u0000\u0301\u0302"+ + "\u0005S\u0000\u0000\u0302\u0303\u0005?\u0000\u0000\u0303M\u0001\u0000"+ + "\u0000\u0000\u0304\u0308\u0003P(\u0000\u0305\u0308\u0003\u00c4b\u0000"+ + "\u0306\u0308\u0005?\u0000\u0000\u0307\u0304\u0001\u0000\u0000\u0000\u0307"+ + "\u0305\u0001\u0000\u0000\u0000\u0307\u0306\u0001\u0000\u0000\u0000\u0308"+ + "O\u0001\u0000\u0000\u0000\u0309\u030c\u0003R)\u0000\u030a\u030c\u0003"+ + "\u00b8\\\u0000\u030b\u0309\u0001\u0000\u0000\u0000\u030b\u030a\u0001\u0000"+ + "\u0000\u0000\u030cQ\u0001\u0000\u0000\u0000\u030d\u030f\u0003T*\u0000"+ + "\u030e\u030d\u0001\u0000\u0000\u0000\u030f\u0312\u0001\u0000\u0000\u0000"+ + "\u0310\u030e\u0001\u0000\u0000\u0000\u0310\u0311\u0001\u0000\u0000\u0000"+ + "\u0311\u0313\u0001\u0000\u0000\u0000\u0312\u0310\u0001\u0000\u0000\u0000"+ + "\u0313\u0314\u0005\t\u0000\u0000\u0314\u0316\u0005f\u0000\u0000\u0315"+ + "\u0317\u0003V+\u0000\u0316\u0315\u0001\u0000\u0000\u0000\u0316\u0317\u0001"+ + "\u0000\u0000\u0000\u0317\u0319\u0001\u0000\u0000\u0000\u0318\u031a\u0003"+ + "Z-\u0000\u0319\u0318\u0001\u0000\u0000\u0000\u0319\u031a\u0001\u0000\u0000"+ + "\u0000\u031a\u031c\u0001\u0000\u0000\u0000\u031b\u031d\u0003\\.\u0000"+ + "\u031c\u031b\u0001\u0000\u0000\u0000\u031c\u031d\u0001\u0000\u0000\u0000"+ + "\u031d\u031e\u0001\u0000\u0000\u0000\u031e\u031f\u0003`0\u0000\u031fS"+ + "\u0001\u0000\u0000\u0000\u0320\u0329\u0003\u00e4r\u0000\u0321\u0329\u0005"+ + "#\u0000\u0000\u0322\u0329\u0005\"\u0000\u0000\u0323\u0329\u0005!\u0000"+ + "\u0000\u0324\u0329\u0005\u0001\u0000\u0000\u0325\u0329\u0005&\u0000\u0000"+ + "\u0326\u0329\u0005\u0012\u0000\u0000\u0327\u0329\u0005\'\u0000\u0000\u0328"+ + "\u0320\u0001\u0000\u0000\u0000\u0328\u0321\u0001\u0000\u0000\u0000\u0328"+ + "\u0322\u0001\u0000\u0000\u0000\u0328\u0323\u0001\u0000\u0000\u0000\u0328"+ + "\u0324\u0001\u0000\u0000\u0000\u0328\u0325\u0001\u0000\u0000\u0000\u0328"+ + "\u0326\u0001\u0000\u0000\u0000\u0328\u0327\u0001\u0000\u0000\u0000\u0329"+ + "U\u0001\u0000\u0000\u0000\u032a\u032b\u0005D\u0000\u0000\u032b\u032c\u0003"+ + "X,\u0000\u032c\u032d\u0005C\u0000\u0000\u032dW\u0001\u0000\u0000\u0000"+ + "\u032e\u0333\u0003 \u0010\u0000\u032f\u0330\u0005@\u0000\u0000\u0330\u0332"+ + "\u0003 \u0010\u0000\u0331\u032f\u0001\u0000\u0000\u0000\u0332\u0335\u0001"+ + "\u0000\u0000\u0000\u0333\u0331\u0001\u0000\u0000\u0000\u0333\u0334\u0001"+ + "\u0000\u0000\u0000\u0334Y\u0001\u0000\u0000\u0000\u0335\u0333\u0001\u0000"+ + "\u0000\u0000\u0336\u0337\u0005\u0011\u0000\u0000\u0337\u0338\u0003\u000e"+ + "\u0007\u0000\u0338[\u0001\u0000\u0000\u0000\u0339\u033a\u0005\u0018\u0000"+ + "\u0000\u033a\u033b\u0003^/\u0000\u033b]\u0001\u0000\u0000\u0000\u033c"+ + "\u0341\u0003\u0014\n\u0000\u033d\u033e\u0005@\u0000\u0000\u033e\u0340"+ + "\u0003\u0014\n\u0000\u033f\u033d\u0001\u0000\u0000\u0000\u0340\u0343\u0001"+ + "\u0000\u0000\u0000\u0341\u033f\u0001\u0000\u0000\u0000\u0341\u0342\u0001"+ + "\u0000\u0000\u0000\u0342_\u0001\u0000\u0000\u0000\u0343\u0341\u0001\u0000"+ + "\u0000\u0000\u0344\u0348\u0005;\u0000\u0000\u0345\u0347\u0003b1\u0000"+ + "\u0346\u0345\u0001\u0000\u0000\u0000\u0347\u034a\u0001\u0000\u0000\u0000"+ + "\u0348\u0346\u0001\u0000\u0000\u0000\u0348\u0349\u0001\u0000\u0000\u0000"+ + "\u0349\u034b\u0001\u0000\u0000\u0000\u034a\u0348\u0001\u0000\u0000\u0000"+ + "\u034b\u034c\u0005<\u0000\u0000\u034ca\u0001\u0000\u0000\u0000\u034d\u0352"+ + "\u0003d2\u0000\u034e\u0352\u0003\u00a8T\u0000\u034f\u0352\u0003\u00aa"+ + "U\u0000\u0350\u0352\u0003\u00acV\u0000\u0351\u034d\u0001\u0000\u0000\u0000"+ + "\u0351\u034e\u0001\u0000\u0000\u0000\u0351\u034f\u0001\u0000\u0000\u0000"+ + "\u0351\u0350\u0001\u0000\u0000\u0000\u0352c\u0001\u0000\u0000\u0000\u0353"+ + "\u0359\u0003f3\u0000\u0354\u0359\u0003\u008aE\u0000\u0355\u0359\u0003"+ + "P(\u0000\u0356\u0359\u0003\u00c4b\u0000\u0357\u0359\u0005?\u0000\u0000"+ + "\u0358\u0353\u0001\u0000\u0000\u0000\u0358\u0354\u0001\u0000\u0000\u0000"+ + "\u0358\u0355\u0001\u0000\u0000\u0000\u0358\u0356\u0001\u0000\u0000\u0000"+ + "\u0358\u0357\u0001\u0000\u0000\u0000\u0359e\u0001\u0000\u0000\u0000\u035a"+ + "\u035c\u0003h4\u0000\u035b\u035a\u0001\u0000\u0000\u0000\u035c\u035f\u0001"+ + "\u0000\u0000\u0000\u035d\u035b\u0001\u0000\u0000\u0000\u035d\u035e\u0001"+ + "\u0000\u0000\u0000\u035e\u0360\u0001\u0000\u0000\u0000\u035f\u035d\u0001"+ + "\u0000\u0000\u0000\u0360\u0361\u0003r9\u0000\u0361\u0362\u0003j5\u0000"+ + "\u0362\u0363\u0005?\u0000\u0000\u0363g\u0001\u0000\u0000\u0000\u0364\u036d"+ + "\u0003\u00e4r\u0000\u0365\u036d\u0005#\u0000\u0000\u0366\u036d\u0005\""+ + "\u0000\u0000\u0367\u036d\u0005!\u0000\u0000\u0368\u036d\u0005&\u0000\u0000"+ + "\u0369\u036d\u0005\u0012\u0000\u0000\u036a\u036d\u0005.\u0000\u0000\u036b"+ + "\u036d\u00051\u0000\u0000\u036c\u0364\u0001\u0000\u0000\u0000\u036c\u0365"+ + "\u0001\u0000\u0000\u0000\u036c\u0366\u0001\u0000\u0000\u0000\u036c\u0367"+ + "\u0001\u0000\u0000\u0000\u036c\u0368\u0001\u0000\u0000\u0000\u036c\u0369"+ + "\u0001\u0000\u0000\u0000\u036c\u036a\u0001\u0000\u0000\u0000\u036c\u036b"+ + "\u0001\u0000\u0000\u0000\u036di\u0001\u0000\u0000\u0000\u036e\u0373\u0003"+ + "l6\u0000\u036f\u0370\u0005@\u0000\u0000\u0370\u0372\u0003l6\u0000\u0371"+ + "\u036f\u0001\u0000\u0000\u0000\u0372\u0375\u0001\u0000\u0000\u0000\u0373"+ + "\u0371\u0001\u0000\u0000\u0000\u0373\u0374\u0001\u0000\u0000\u0000\u0374"+ + "k\u0001\u0000\u0000\u0000\u0375\u0373\u0001\u0000\u0000\u0000\u0376\u0379"+ + "\u0003n7\u0000\u0377\u0378\u0005B\u0000\u0000\u0378\u037a\u0003p8\u0000"+ + "\u0379\u0377\u0001\u0000\u0000\u0000\u0379\u037a\u0001\u0000\u0000\u0000"+ + "\u037am\u0001\u0000\u0000\u0000\u037b\u037d\u0005f\u0000\u0000\u037c\u037e"+ + "\u0003\u001e\u000f\u0000\u037d\u037c\u0001\u0000\u0000\u0000\u037d\u037e"+ + "\u0001\u0000\u0000\u0000\u037eo\u0001\u0000\u0000\u0000\u037f\u0382\u0003"+ + "\u019c\u00ce\u0000\u0380\u0382\u0003\u00f6{\u0000\u0381\u037f\u0001\u0000"+ + "\u0000\u0000\u0381\u0380\u0001\u0000\u0000\u0000\u0382q\u0001\u0000\u0000"+ + "\u0000\u0383\u0386\u0003t:\u0000\u0384\u0386\u0003v;\u0000\u0385\u0383"+ + "\u0001\u0000\u0000\u0000\u0385\u0384\u0001\u0000\u0000\u0000\u0386s\u0001"+ + "\u0000\u0000\u0000\u0387\u038a\u0003\u0004\u0002\u0000\u0388\u038a\u0005"+ + "\u0003\u0000\u0000\u0389\u0387\u0001\u0000\u0000\u0000\u0389\u0388\u0001"+ + "\u0000\u0000\u0000\u038au\u0001\u0000\u0000\u0000\u038b\u038f\u0003x<"+ + "\u0000\u038c\u038f\u0003\u0086C\u0000\u038d\u038f\u0003\u0088D\u0000\u038e"+ + "\u038b\u0001\u0000\u0000\u0000\u038e\u038c\u0001\u0000\u0000\u0000\u038e"+ + "\u038d\u0001\u0000\u0000\u0000\u038fw\u0001\u0000\u0000\u0000\u0390\u0393"+ + "\u0003~?\u0000\u0391\u0393\u0003\u0084B\u0000\u0392\u0390\u0001\u0000"+ + "\u0000\u0000\u0392\u0391\u0001\u0000\u0000\u0000\u0393\u0398\u0001\u0000"+ + "\u0000\u0000\u0394\u0397\u0003|>\u0000\u0395\u0397\u0003\u0082A\u0000"+ + "\u0396\u0394\u0001\u0000\u0000\u0000\u0396\u0395\u0001\u0000\u0000\u0000"+ + "\u0397\u039a\u0001\u0000\u0000\u0000\u0398\u0396\u0001\u0000\u0000\u0000"+ + "\u0398\u0399\u0001\u0000\u0000\u0000\u0399y\u0001\u0000\u0000\u0000\u039a"+ + "\u0398\u0001\u0000\u0000\u0000\u039b\u039d\u0005f\u0000\u0000\u039c\u039e"+ + "\u0003(\u0014\u0000\u039d\u039c\u0001\u0000\u0000\u0000\u039d\u039e\u0001"+ + "\u0000\u0000\u0000\u039e\u03ac\u0001\u0000\u0000\u0000\u039f\u03a0\u0003"+ + "x<\u0000\u03a0\u03a4\u0005A\u0000\u0000\u03a1\u03a3\u0003\u00e4r\u0000"+ + "\u03a2\u03a1\u0001\u0000\u0000\u0000\u03a3\u03a6\u0001\u0000\u0000\u0000"+ + "\u03a4\u03a2\u0001\u0000\u0000\u0000\u03a4\u03a5\u0001\u0000\u0000\u0000"+ + "\u03a5\u03a7\u0001\u0000\u0000\u0000\u03a6\u03a4\u0001\u0000\u0000\u0000"+ + "\u03a7\u03a9\u0005f\u0000\u0000\u03a8\u03aa\u0003(\u0014\u0000\u03a9\u03a8"+ + "\u0001\u0000\u0000\u0000\u03a9\u03aa\u0001\u0000\u0000\u0000\u03aa\u03ac"+ + "\u0001\u0000\u0000\u0000\u03ab\u039b\u0001\u0000\u0000\u0000\u03ab\u039f"+ + "\u0001\u0000\u0000\u0000\u03ac{\u0001\u0000\u0000\u0000\u03ad\u03b1\u0005"+ + "A\u0000\u0000\u03ae\u03b0\u0003\u00e4r\u0000\u03af\u03ae\u0001\u0000\u0000"+ + "\u0000\u03b0\u03b3\u0001\u0000\u0000\u0000\u03b1\u03af\u0001\u0000\u0000"+ + "\u0000\u03b1\u03b2\u0001\u0000\u0000\u0000\u03b2\u03b4\u0001\u0000\u0000"+ + "\u0000\u03b3\u03b1\u0001\u0000\u0000\u0000\u03b4\u03b6\u0005f\u0000\u0000"+ + "\u03b5\u03b7\u0003(\u0014\u0000\u03b6\u03b5\u0001\u0000\u0000\u0000\u03b6"+ + "\u03b7\u0001\u0000\u0000\u0000\u03b7}\u0001\u0000\u0000\u0000\u03b8\u03ba"+ + "\u0005f\u0000\u0000\u03b9\u03bb\u0003(\u0014\u0000\u03ba\u03b9\u0001\u0000"+ + "\u0000\u0000\u03ba\u03bb\u0001\u0000\u0000\u0000\u03bb\u007f\u0001\u0000"+ + "\u0000\u0000\u03bc\u03bd\u0003z=\u0000\u03bd\u0081\u0001\u0000\u0000\u0000"+ + "\u03be\u03bf\u0003|>\u0000\u03bf\u0083\u0001\u0000\u0000\u0000\u03c0\u03c1"+ + "\u0003~?\u0000\u03c1\u0085\u0001\u0000\u0000\u0000\u03c2\u03c3\u0005f"+ + "\u0000\u0000\u03c3\u0087\u0001\u0000\u0000\u0000\u03c4\u03c5\u0003t:\u0000"+ + "\u03c5\u03c6\u0003\u001e\u000f\u0000\u03c6\u03ce\u0001\u0000\u0000\u0000"+ + "\u03c7\u03c8\u0003x<\u0000\u03c8\u03c9\u0003\u001e\u000f\u0000\u03c9\u03ce"+ + "\u0001\u0000\u0000\u0000\u03ca\u03cb\u0003\u0086C\u0000\u03cb\u03cc\u0003"+ + "\u001e\u000f\u0000\u03cc\u03ce\u0001\u0000\u0000\u0000\u03cd\u03c4\u0001"+ + "\u0000\u0000\u0000\u03cd\u03c7\u0001\u0000\u0000\u0000\u03cd\u03ca\u0001"+ + "\u0000\u0000\u0000\u03ce\u0089\u0001\u0000\u0000\u0000\u03cf\u03d1\u0003"+ + "\u008cF\u0000\u03d0\u03cf\u0001\u0000\u0000\u0000\u03d1\u03d4\u0001\u0000"+ + "\u0000\u0000\u03d2\u03d0\u0001\u0000\u0000\u0000\u03d2\u03d3\u0001\u0000"+ + "\u0000\u0000\u03d3\u03d5\u0001\u0000\u0000\u0000\u03d4\u03d2\u0001\u0000"+ + "\u0000\u0000\u03d5\u03d6\u0003\u008eG\u0000\u03d6\u03d7\u0003\u00a6S\u0000"+ + "\u03d7\u008b\u0001\u0000\u0000\u0000\u03d8\u03e3\u0003\u00e4r\u0000\u03d9"+ + "\u03e3\u0005#\u0000\u0000\u03da\u03e3\u0005\"\u0000\u0000\u03db\u03e3"+ + "\u0005!\u0000\u0000\u03dc\u03e3\u0005\u0001\u0000\u0000\u03dd\u03e3\u0005"+ + "&\u0000\u0000\u03de\u03e3\u0005\u0012\u0000\u0000\u03df\u03e3\u0005*\u0000"+ + "\u0000\u03e0\u03e3\u0005\u001e\u0000\u0000\u03e1\u03e3\u0005\'\u0000\u0000"+ + "\u03e2\u03d8\u0001\u0000\u0000\u0000\u03e2\u03d9\u0001\u0000\u0000\u0000"+ + "\u03e2\u03da\u0001\u0000\u0000\u0000\u03e2\u03db\u0001\u0000\u0000\u0000"+ + "\u03e2\u03dc\u0001\u0000\u0000\u0000\u03e2\u03dd\u0001\u0000\u0000\u0000"+ + "\u03e2\u03de\u0001\u0000\u0000\u0000\u03e2\u03df\u0001\u0000\u0000\u0000"+ + "\u03e2\u03e0\u0001\u0000\u0000\u0000\u03e2\u03e1\u0001\u0000\u0000\u0000"+ + "\u03e3\u008d\u0001\u0000\u0000\u0000\u03e4\u03e5\u0003\u0090H\u0000\u03e5"+ + "\u03e7\u0003\u0092I\u0000\u03e6\u03e8\u0003\u00a0P\u0000\u03e7\u03e6\u0001"+ + "\u0000\u0000\u0000\u03e7\u03e8\u0001\u0000\u0000\u0000\u03e8\u03f6\u0001"+ + "\u0000\u0000\u0000\u03e9\u03ed\u0003V+\u0000\u03ea\u03ec\u0003\u00e4r"+ + "\u0000\u03eb\u03ea\u0001\u0000\u0000\u0000\u03ec\u03ef\u0001\u0000\u0000"+ + "\u0000\u03ed\u03eb\u0001\u0000\u0000\u0000\u03ed\u03ee\u0001\u0000\u0000"+ + "\u0000\u03ee\u03f0\u0001\u0000\u0000\u0000\u03ef\u03ed\u0001\u0000\u0000"+ + "\u0000\u03f0\u03f1\u0003\u0090H\u0000\u03f1\u03f3\u0003\u0092I\u0000\u03f2"+ + "\u03f4\u0003\u00a0P\u0000\u03f3\u03f2\u0001\u0000\u0000\u0000\u03f3\u03f4"+ + "\u0001\u0000\u0000\u0000\u03f4\u03f6\u0001\u0000\u0000\u0000\u03f5\u03e4"+ + "\u0001\u0000\u0000\u0000\u03f5\u03e9\u0001\u0000\u0000\u0000\u03f6\u008f"+ + "\u0001\u0000\u0000\u0000\u03f7\u03fa\u0003r9\u0000\u03f8\u03fa\u00050"+ + "\u0000\u0000\u03f9\u03f7\u0001\u0000\u0000\u0000\u03f9\u03f8\u0001\u0000"+ + "\u0000\u0000\u03fa\u0091\u0001\u0000\u0000\u0000\u03fb\u03fc\u0005f\u0000"+ + "\u0000\u03fc\u03fe\u00059\u0000\u0000\u03fd\u03ff\u0003\u0094J\u0000\u03fe"+ + "\u03fd\u0001\u0000\u0000\u0000\u03fe\u03ff\u0001\u0000\u0000\u0000\u03ff"+ + "\u0400\u0001\u0000\u0000\u0000\u0400\u0402\u0005:\u0000\u0000\u0401\u0403"+ + "\u0003\u001e\u000f\u0000\u0402\u0401\u0001\u0000\u0000\u0000\u0402\u0403"+ + "\u0001\u0000\u0000\u0000\u0403\u0093\u0001\u0000\u0000\u0000\u0404\u040b"+ + "\u0003\u009eO\u0000\u0405\u0406\u0003\u0096K\u0000\u0406\u0407\u0005@"+ + "\u0000\u0000\u0407\u0408\u0003\u009cN\u0000\u0408\u040b\u0001\u0000\u0000"+ + "\u0000\u0409\u040b\u0003\u009cN\u0000\u040a\u0404\u0001\u0000\u0000\u0000"+ + "\u040a\u0405\u0001\u0000\u0000\u0000\u040a\u0409\u0001\u0000\u0000\u0000"+ + "\u040b\u0095\u0001\u0000\u0000\u0000\u040c\u0411\u0003\u0098L\u0000\u040d"+ + "\u040e\u0005@\u0000\u0000\u040e\u0410\u0003\u0098L\u0000\u040f\u040d\u0001"+ + "\u0000\u0000\u0000\u0410\u0413\u0001\u0000\u0000\u0000\u0411\u040f\u0001"+ + "\u0000\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u041d\u0001"+ + "\u0000\u0000\u0000\u0413\u0411\u0001\u0000\u0000\u0000\u0414\u0419\u0003"+ + "\u009eO\u0000\u0415\u0416\u0005@\u0000\u0000\u0416\u0418\u0003\u0098L"+ + "\u0000\u0417\u0415\u0001\u0000\u0000\u0000\u0418\u041b\u0001\u0000\u0000"+ + "\u0000\u0419\u0417\u0001\u0000\u0000\u0000\u0419\u041a\u0001\u0000\u0000"+ + "\u0000\u041a\u041d\u0001\u0000\u0000\u0000\u041b\u0419\u0001\u0000\u0000"+ + "\u0000\u041c\u040c\u0001\u0000\u0000\u0000\u041c\u0414\u0001\u0000\u0000"+ + "\u0000\u041d\u0097\u0001\u0000\u0000\u0000\u041e\u0420\u0003\u009aM\u0000"+ + "\u041f\u041e\u0001\u0000\u0000\u0000\u0420\u0423\u0001\u0000\u0000\u0000"+ + "\u0421\u041f\u0001\u0000\u0000\u0000\u0421\u0422\u0001\u0000\u0000\u0000"+ + "\u0422\u0424\u0001\u0000\u0000\u0000\u0423\u0421\u0001\u0000\u0000\u0000"+ + "\u0424\u0425\u0003r9\u0000\u0425\u0426\u0003n7\u0000\u0426\u0099\u0001"+ + "\u0000\u0000\u0000\u0427\u042a\u0003\u00e4r\u0000\u0428\u042a\u0005\u0012"+ + "\u0000\u0000\u0429\u0427\u0001\u0000\u0000\u0000\u0429\u0428\u0001\u0000"+ + "\u0000\u0000\u042a\u009b\u0001\u0000\u0000\u0000\u042b\u042d\u0003\u009a"+ + "M\u0000\u042c\u042b\u0001\u0000\u0000\u0000\u042d\u0430\u0001\u0000\u0000"+ + "\u0000\u042e\u042c\u0001\u0000\u0000\u0000\u042e\u042f\u0001\u0000\u0000"+ + "\u0000\u042f\u0431\u0001\u0000\u0000\u0000\u0430\u042e\u0001\u0000\u0000"+ + "\u0000\u0431\u0435\u0003r9\u0000\u0432\u0434\u0003\u00e4r\u0000\u0433"+ + "\u0432\u0001\u0000\u0000\u0000\u0434\u0437\u0001\u0000\u0000\u0000\u0435"+ + "\u0433\u0001\u0000\u0000\u0000\u0435\u0436\u0001\u0000\u0000\u0000\u0436"+ + "\u0438\u0001\u0000\u0000\u0000\u0437\u0435\u0001\u0000\u0000\u0000\u0438"+ + "\u0439\u0005h\u0000\u0000\u0439\u043a\u0003n7\u0000\u043a\u043d\u0001"+ + "\u0000\u0000\u0000\u043b\u043d\u0003\u0098L\u0000\u043c\u042e\u0001\u0000"+ + "\u0000\u0000\u043c\u043b\u0001\u0000\u0000\u0000\u043d\u009d\u0001\u0000"+ + "\u0000\u0000\u043e\u0440\u0003\u00e4r\u0000\u043f\u043e\u0001\u0000\u0000"+ + "\u0000\u0440\u0443\u0001\u0000\u0000\u0000\u0441\u043f\u0001\u0000\u0000"+ + "\u0000\u0441\u0442\u0001\u0000\u0000\u0000\u0442\u0444\u0001\u0000\u0000"+ + "\u0000\u0443\u0441\u0001\u0000\u0000\u0000\u0444\u0447\u0003r9\u0000\u0445"+ + "\u0446\u0005f\u0000\u0000\u0446\u0448\u0005A\u0000\u0000\u0447\u0445\u0001"+ + "\u0000\u0000\u0000\u0447\u0448\u0001\u0000\u0000\u0000\u0448\u0449\u0001"+ + "\u0000\u0000\u0000\u0449\u044a\u0005+\u0000\u0000\u044a\u009f\u0001\u0000"+ + "\u0000\u0000\u044b\u044c\u0005-\u0000\u0000\u044c\u044d\u0003\u00a2Q\u0000"+ + "\u044d\u00a1\u0001\u0000\u0000\u0000\u044e\u0453\u0003\u00a4R\u0000\u044f"+ + "\u0450\u0005@\u0000\u0000\u0450\u0452\u0003\u00a4R\u0000\u0451\u044f\u0001"+ + "\u0000\u0000\u0000\u0452\u0455\u0001\u0000\u0000\u0000\u0453\u0451\u0001"+ + "\u0000\u0000\u0000\u0453\u0454\u0001\u0000\u0000\u0000\u0454\u00a3\u0001"+ + "\u0000\u0000\u0000\u0455\u0453\u0001\u0000\u0000\u0000\u0456\u0459\u0003"+ + "\u000e\u0007\u0000\u0457\u0459\u0003\u001a\r\u0000\u0458\u0456\u0001\u0000"+ + "\u0000\u0000\u0458\u0457\u0001\u0000\u0000\u0000\u0459\u00a5\u0001\u0000"+ + "\u0000\u0000\u045a\u045d\u0003\u00fa}\u0000\u045b\u045d\u0005?\u0000\u0000"+ + "\u045c\u045a\u0001\u0000\u0000\u0000\u045c\u045b\u0001\u0000\u0000\u0000"+ + "\u045d\u00a7\u0001\u0000\u0000\u0000\u045e\u045f\u0003\u00fa}\u0000\u045f"+ + "\u00a9\u0001\u0000\u0000\u0000\u0460\u0461\u0005&\u0000\u0000\u0461\u0462"+ + "\u0003\u00fa}\u0000\u0462\u00ab\u0001\u0000\u0000\u0000\u0463\u0465\u0003"+ + "\u00aeW\u0000\u0464\u0463\u0001\u0000\u0000\u0000\u0465\u0468\u0001\u0000"+ + "\u0000\u0000\u0466\u0464\u0001\u0000\u0000\u0000\u0466\u0467\u0001\u0000"+ + "\u0000\u0000\u0467\u0469\u0001\u0000\u0000\u0000\u0468\u0466\u0001\u0000"+ + "\u0000\u0000\u0469\u046b\u0003\u00b0X\u0000\u046a\u046c\u0003\u00a0P\u0000"+ + "\u046b\u046a\u0001\u0000\u0000\u0000\u046b\u046c\u0001\u0000\u0000\u0000"+ + "\u046c\u046d\u0001\u0000\u0000\u0000\u046d\u046e\u0003\u00b4Z\u0000\u046e"+ + "\u00ad\u0001\u0000\u0000\u0000\u046f\u0474\u0003\u00e4r\u0000\u0470\u0474"+ + "\u0005#\u0000\u0000\u0471\u0474\u0005\"\u0000\u0000\u0472\u0474\u0005"+ + "!\u0000\u0000\u0473\u046f\u0001\u0000\u0000\u0000\u0473\u0470\u0001\u0000"+ + "\u0000\u0000\u0473\u0471\u0001\u0000\u0000\u0000\u0473\u0472\u0001\u0000"+ + "\u0000\u0000\u0474\u00af\u0001\u0000\u0000\u0000\u0475\u0477\u0003V+\u0000"+ + "\u0476\u0475\u0001\u0000\u0000\u0000\u0476\u0477\u0001\u0000\u0000\u0000"+ + "\u0477\u0478\u0001\u0000\u0000\u0000\u0478\u0479\u0003\u00b2Y\u0000\u0479"+ + "\u047b\u00059\u0000\u0000\u047a\u047c\u0003\u0094J\u0000\u047b\u047a\u0001"+ + "\u0000\u0000\u0000\u047b\u047c\u0001\u0000\u0000\u0000\u047c\u047d\u0001"+ + "\u0000\u0000\u0000\u047d\u047e\u0005:\u0000\u0000\u047e\u00b1\u0001\u0000"+ + "\u0000\u0000\u047f\u0480\u0005f\u0000\u0000\u0480\u00b3\u0001\u0000\u0000"+ + "\u0000\u0481\u0483\u0005;\u0000\u0000\u0482\u0484\u0003\u00b6[\u0000\u0483"+ + "\u0482\u0001\u0000\u0000\u0000\u0483\u0484\u0001\u0000\u0000\u0000\u0484"+ + "\u0486\u0001\u0000\u0000\u0000\u0485\u0487\u0003\u00fc~\u0000\u0486\u0485"+ + "\u0001\u0000\u0000\u0000\u0486\u0487\u0001\u0000\u0000\u0000\u0487\u0488"+ + "\u0001\u0000\u0000\u0000\u0488\u0489\u0005<\u0000\u0000\u0489\u00b5\u0001"+ + "\u0000\u0000\u0000\u048a\u048c\u0003(\u0014\u0000\u048b\u048a\u0001\u0000"+ + "\u0000\u0000\u048b\u048c\u0001\u0000\u0000\u0000\u048c\u048d\u0001\u0000"+ + "\u0000\u0000\u048d\u048e\u0005+\u0000\u0000\u048e\u0490\u00059\u0000\u0000"+ + "\u048f\u0491\u0003\u018c\u00c6\u0000\u0490\u048f\u0001\u0000\u0000\u0000"+ + "\u0490\u0491\u0001\u0000\u0000\u0000\u0491\u0492\u0001\u0000\u0000\u0000"+ + "\u0492\u0493\u0005:\u0000\u0000\u0493\u04b9\u0005?\u0000\u0000\u0494\u0496"+ + "\u0003(\u0014\u0000\u0495\u0494\u0001\u0000\u0000\u0000\u0495\u0496\u0001"+ + "\u0000\u0000\u0000\u0496\u0497\u0001\u0000\u0000\u0000\u0497\u0498\u0005"+ + "(\u0000\u0000\u0498\u049a\u00059\u0000\u0000\u0499\u049b\u0003\u018c\u00c6"+ + "\u0000\u049a\u0499\u0001\u0000\u0000\u0000\u049a\u049b\u0001\u0000\u0000"+ + "\u0000\u049b\u049c\u0001\u0000\u0000\u0000\u049c\u049d\u0005:\u0000\u0000"+ + "\u049d\u04b9\u0005?\u0000\u0000\u049e\u049f\u00038\u001c\u0000\u049f\u04a1"+ + "\u0005A\u0000\u0000\u04a0\u04a2\u0003(\u0014\u0000\u04a1\u04a0\u0001\u0000"+ + "\u0000\u0000\u04a1\u04a2\u0001\u0000\u0000\u0000\u04a2\u04a3\u0001\u0000"+ + "\u0000\u0000\u04a3\u04a4\u0005(\u0000\u0000\u04a4\u04a6\u00059\u0000\u0000"+ + "\u04a5\u04a7\u0003\u018c\u00c6\u0000\u04a6\u04a5\u0001\u0000\u0000\u0000"+ + "\u04a6\u04a7\u0001\u0000\u0000\u0000\u04a7\u04a8\u0001\u0000\u0000\u0000"+ + "\u04a8\u04a9\u0005:\u0000\u0000\u04a9\u04aa\u0005?\u0000\u0000\u04aa\u04b9"+ + "\u0001\u0000\u0000\u0000\u04ab\u04ac\u0003\u015e\u00af\u0000\u04ac\u04ae"+ + "\u0005A\u0000\u0000\u04ad\u04af\u0003(\u0014\u0000\u04ae\u04ad\u0001\u0000"+ + "\u0000\u0000\u04ae\u04af\u0001\u0000\u0000\u0000\u04af\u04b0\u0001\u0000"+ + "\u0000\u0000\u04b0\u04b1\u0005(\u0000\u0000\u04b1\u04b3\u00059\u0000\u0000"+ + "\u04b2\u04b4\u0003\u018c\u00c6\u0000\u04b3\u04b2\u0001\u0000\u0000\u0000"+ + "\u04b3\u04b4\u0001\u0000\u0000\u0000\u04b4\u04b5\u0001\u0000\u0000\u0000"+ + "\u04b5\u04b6\u0005:\u0000\u0000\u04b6\u04b7\u0005?\u0000\u0000\u04b7\u04b9"+ + "\u0001\u0000\u0000\u0000\u04b8\u048b\u0001\u0000\u0000\u0000\u04b8\u0495"+ + "\u0001\u0000\u0000\u0000\u04b8\u049e\u0001\u0000\u0000\u0000\u04b8\u04ab"+ + "\u0001\u0000\u0000\u0000\u04b9\u00b7\u0001\u0000\u0000\u0000\u04ba\u04bc"+ + "\u0003T*\u0000\u04bb\u04ba\u0001\u0000\u0000\u0000\u04bc\u04bf\u0001\u0000"+ + "\u0000\u0000\u04bd\u04bb\u0001\u0000\u0000\u0000\u04bd\u04be\u0001\u0000"+ + "\u0000\u0000\u04be\u04c0\u0001\u0000\u0000\u0000\u04bf\u04bd\u0001\u0000"+ + "\u0000\u0000\u04c0\u04c1\u0005\u0010\u0000\u0000\u04c1\u04c3\u0005f\u0000"+ + "\u0000\u04c2\u04c4\u0003\\.\u0000\u04c3\u04c2\u0001\u0000\u0000\u0000"+ + "\u04c3\u04c4\u0001\u0000\u0000\u0000\u04c4\u04c5\u0001\u0000\u0000\u0000"+ + "\u04c5\u04c6\u0003\u00ba]\u0000\u04c6\u00b9\u0001\u0000\u0000\u0000\u04c7"+ + "\u04c9\u0005;\u0000\u0000\u04c8\u04ca\u0003\u00bc^\u0000\u04c9\u04c8\u0001"+ + "\u0000\u0000\u0000\u04c9\u04ca\u0001\u0000\u0000\u0000\u04ca\u04cc\u0001"+ + "\u0000\u0000\u0000\u04cb\u04cd\u0005@\u0000\u0000\u04cc\u04cb\u0001\u0000"+ + "\u0000\u0000\u04cc\u04cd\u0001\u0000\u0000\u0000\u04cd\u04cf\u0001\u0000"+ + "\u0000\u0000\u04ce\u04d0\u0003\u00c2a\u0000\u04cf\u04ce\u0001\u0000\u0000"+ + "\u0000\u04cf\u04d0\u0001\u0000\u0000\u0000\u04d0\u04d1\u0001\u0000\u0000"+ + "\u0000\u04d1\u04d2\u0005<\u0000\u0000\u04d2\u00bb\u0001\u0000\u0000\u0000"+ + "\u04d3\u04d8\u0003\u00be_\u0000\u04d4\u04d5\u0005@\u0000\u0000\u04d5\u04d7"+ + "\u0003\u00be_\u0000\u04d6\u04d4\u0001\u0000\u0000\u0000\u04d7\u04da\u0001"+ + "\u0000\u0000\u0000\u04d8\u04d6\u0001\u0000\u0000\u0000\u04d8\u04d9\u0001"+ + "\u0000\u0000\u0000\u04d9\u00bd\u0001\u0000\u0000\u0000\u04da\u04d8\u0001"+ + "\u0000\u0000\u0000\u04db\u04dd\u0003\u00c0`\u0000\u04dc\u04db\u0001\u0000"+ + "\u0000\u0000\u04dd\u04e0\u0001\u0000\u0000\u0000\u04de\u04dc\u0001\u0000"+ + "\u0000\u0000\u04de\u04df\u0001\u0000\u0000\u0000\u04df\u04e1\u0001\u0000"+ + "\u0000\u0000\u04e0\u04de\u0001\u0000\u0000\u0000\u04e1\u04e7\u0005f\u0000"+ + "\u0000\u04e2\u04e4\u00059\u0000\u0000\u04e3\u04e5\u0003\u018c\u00c6\u0000"+ + "\u04e4\u04e3\u0001\u0000\u0000\u0000\u04e4\u04e5\u0001\u0000\u0000\u0000"+ + "\u04e5\u04e6\u0001\u0000\u0000\u0000\u04e6\u04e8\u0005:\u0000\u0000\u04e7"+ + "\u04e2\u0001\u0000\u0000\u0000\u04e7\u04e8\u0001\u0000\u0000\u0000\u04e8"+ + "\u04ea\u0001\u0000\u0000\u0000\u04e9\u04eb\u0003`0\u0000\u04ea\u04e9\u0001"+ + "\u0000\u0000\u0000\u04ea\u04eb\u0001\u0000\u0000\u0000\u04eb\u00bf\u0001"+ + "\u0000\u0000\u0000\u04ec\u04ed\u0003\u00e4r\u0000\u04ed\u00c1\u0001\u0000"+ + "\u0000\u0000\u04ee\u04f2\u0005?\u0000\u0000\u04ef\u04f1\u0003b1\u0000"+ + "\u04f0\u04ef\u0001\u0000\u0000\u0000\u04f1\u04f4\u0001\u0000\u0000\u0000"+ + "\u04f2\u04f0\u0001\u0000\u0000\u0000\u04f2\u04f3\u0001\u0000\u0000\u0000"+ + "\u04f3\u00c3\u0001\u0000\u0000\u0000\u04f4\u04f2\u0001\u0000\u0000\u0000"+ + "\u04f5\u04f8\u0003\u00c6c\u0000\u04f6\u04f8\u0003\u00d8l\u0000\u04f7\u04f5"+ + "\u0001\u0000\u0000\u0000\u04f7\u04f6\u0001\u0000\u0000\u0000\u04f8\u00c5"+ + "\u0001\u0000\u0000\u0000\u04f9\u04fb\u0003\u00c8d\u0000\u04fa\u04f9\u0001"+ + "\u0000\u0000\u0000\u04fb\u04fe\u0001\u0000\u0000\u0000\u04fc\u04fa\u0001"+ + "\u0000\u0000\u0000\u04fc\u04fd\u0001\u0000\u0000\u0000\u04fd\u04ff\u0001"+ + "\u0000\u0000\u0000\u04fe\u04fc\u0001\u0000\u0000\u0000\u04ff\u0500\u0005"+ + "\u001c\u0000\u0000\u0500\u0502\u0005f\u0000\u0000\u0501\u0503\u0003V+"+ + "\u0000\u0502\u0501\u0001\u0000\u0000\u0000\u0502\u0503\u0001\u0000\u0000"+ + "\u0000\u0503\u0505\u0001\u0000\u0000\u0000\u0504\u0506\u0003\u00cae\u0000"+ + "\u0505\u0504\u0001\u0000\u0000\u0000\u0505\u0506\u0001\u0000\u0000\u0000"+ + "\u0506\u0507\u0001\u0000\u0000\u0000\u0507\u0508\u0003\u00ccf\u0000\u0508"+ + "\u00c7\u0001\u0000\u0000\u0000\u0509\u0511\u0003\u00e4r\u0000\u050a\u0511"+ + "\u0005#\u0000\u0000\u050b\u0511\u0005\"\u0000\u0000\u050c\u0511\u0005"+ + "!\u0000\u0000\u050d\u0511\u0005\u0001\u0000\u0000\u050e\u0511\u0005&\u0000"+ + "\u0000\u050f\u0511\u0005\'\u0000\u0000\u0510\u0509\u0001\u0000\u0000\u0000"+ + "\u0510\u050a\u0001\u0000\u0000\u0000\u0510\u050b\u0001\u0000\u0000\u0000"+ + "\u0510\u050c\u0001\u0000\u0000\u0000\u0510\u050d\u0001\u0000\u0000\u0000"+ + "\u0510\u050e\u0001\u0000\u0000\u0000\u0510\u050f\u0001\u0000\u0000\u0000"+ + "\u0511\u00c9\u0001\u0000\u0000\u0000\u0512\u0513\u0005\u0011\u0000\u0000"+ + "\u0513\u0514\u0003^/\u0000\u0514\u00cb\u0001\u0000\u0000\u0000\u0515\u0519"+ + "\u0005;\u0000\u0000\u0516\u0518\u0003\u00ceg\u0000\u0517\u0516\u0001\u0000"+ + "\u0000\u0000\u0518\u051b\u0001\u0000\u0000\u0000\u0519\u0517\u0001\u0000"+ + "\u0000\u0000\u0519\u051a\u0001\u0000\u0000\u0000\u051a\u051c\u0001\u0000"+ + "\u0000\u0000\u051b\u0519\u0001\u0000\u0000\u0000\u051c\u051d\u0005<\u0000"+ + "\u0000\u051d\u00cd\u0001\u0000\u0000\u0000\u051e\u0524\u0003\u00d0h\u0000"+ + "\u051f\u0524\u0003\u00d4j\u0000\u0520\u0524\u0003P(\u0000\u0521\u0524"+ + "\u0003\u00c4b\u0000\u0522\u0524\u0005?\u0000\u0000\u0523\u051e\u0001\u0000"+ + "\u0000\u0000\u0523\u051f\u0001\u0000\u0000\u0000\u0523\u0520\u0001\u0000"+ + "\u0000\u0000\u0523\u0521\u0001\u0000\u0000\u0000\u0523\u0522\u0001\u0000"+ + "\u0000\u0000\u0524\u00cf\u0001\u0000\u0000\u0000\u0525\u0527\u0003\u00d2"+ + "i\u0000\u0526\u0525\u0001\u0000\u0000\u0000\u0527\u052a\u0001\u0000\u0000"+ + "\u0000\u0528\u0526\u0001\u0000\u0000\u0000\u0528\u0529\u0001\u0000\u0000"+ + "\u0000\u0529\u052b\u0001\u0000\u0000\u0000\u052a\u0528\u0001\u0000\u0000"+ + "\u0000\u052b\u052c\u0003r9\u0000\u052c\u052d\u0003j5\u0000\u052d\u052e"+ + "\u0005?\u0000\u0000\u052e\u00d1\u0001\u0000\u0000\u0000\u052f\u0534\u0003"+ + "\u00e4r\u0000\u0530\u0534\u0005#\u0000\u0000\u0531\u0534\u0005&\u0000"+ + "\u0000\u0532\u0534\u0005\u0012\u0000\u0000\u0533\u052f\u0001\u0000\u0000"+ + "\u0000\u0533\u0530\u0001\u0000\u0000\u0000\u0533\u0531\u0001\u0000\u0000"+ + "\u0000\u0533\u0532\u0001\u0000\u0000\u0000\u0534\u00d3\u0001\u0000\u0000"+ + "\u0000\u0535\u0537\u0003\u00d6k\u0000\u0536\u0535\u0001\u0000\u0000\u0000"+ + "\u0537\u053a\u0001\u0000\u0000\u0000\u0538\u0536\u0001\u0000\u0000\u0000"+ + "\u0538\u0539\u0001\u0000\u0000\u0000\u0539\u053b\u0001\u0000\u0000\u0000"+ + "\u053a\u0538\u0001\u0000\u0000\u0000\u053b\u053c\u0003\u008eG\u0000\u053c"+ + "\u053d\u0003\u00a6S\u0000\u053d\u00d5\u0001\u0000\u0000\u0000\u053e\u0545"+ + "\u0003\u00e4r\u0000\u053f\u0545\u0005#\u0000\u0000\u0540\u0545\u0005\u0001"+ + "\u0000\u0000\u0541\u0545\u0005\f\u0000\u0000\u0542\u0545\u0005&\u0000"+ + "\u0000\u0543\u0545\u0005\'\u0000\u0000\u0544\u053e\u0001\u0000\u0000\u0000"+ + "\u0544\u053f\u0001\u0000\u0000\u0000\u0544\u0540\u0001\u0000\u0000\u0000"+ + "\u0544\u0541\u0001\u0000\u0000\u0000\u0544\u0542\u0001\u0000\u0000\u0000"+ + "\u0544\u0543\u0001\u0000\u0000\u0000\u0545\u00d7\u0001\u0000\u0000\u0000"+ + "\u0546\u0548\u0003\u00c8d\u0000\u0547\u0546\u0001\u0000\u0000\u0000\u0548"+ + "\u054b\u0001\u0000\u0000\u0000\u0549\u0547\u0001\u0000\u0000\u0000\u0549"+ + "\u054a\u0001\u0000\u0000\u0000\u054a\u054c\u0001\u0000\u0000\u0000\u054b"+ + "\u0549\u0001\u0000\u0000\u0000\u054c\u054d\u0005g\u0000\u0000\u054d\u054e"+ + "\u0005\u001c\u0000\u0000\u054e\u054f\u0005f\u0000\u0000\u054f\u0550\u0003"+ + "\u00dam\u0000\u0550\u00d9\u0001\u0000\u0000\u0000\u0551\u0555\u0005;\u0000"+ + "\u0000\u0552\u0554\u0003\u00dcn\u0000\u0553\u0552\u0001\u0000\u0000\u0000"+ + "\u0554\u0557\u0001\u0000\u0000\u0000\u0555\u0553\u0001\u0000\u0000\u0000"+ + "\u0555\u0556\u0001\u0000\u0000\u0000\u0556\u0558\u0001\u0000\u0000\u0000"+ + "\u0557\u0555\u0001\u0000\u0000\u0000\u0558\u0559\u0005<\u0000\u0000\u0559"+ + "\u00db\u0001\u0000\u0000\u0000\u055a\u0560\u0003\u00deo\u0000\u055b\u0560"+ + "\u0003\u00d0h\u0000\u055c\u0560\u0003P(\u0000\u055d\u0560\u0003\u00c4"+ + "b\u0000\u055e\u0560\u0005?\u0000\u0000\u055f\u055a\u0001\u0000\u0000\u0000"+ + "\u055f\u055b\u0001\u0000\u0000\u0000\u055f\u055c\u0001\u0000\u0000\u0000"+ + "\u055f\u055d\u0001\u0000\u0000\u0000\u055f\u055e\u0001\u0000\u0000\u0000"+ + "\u0560\u00dd\u0001\u0000\u0000\u0000\u0561\u0563\u0003\u00e0p\u0000\u0562"+ + "\u0561\u0001\u0000\u0000\u0000\u0563\u0566\u0001\u0000\u0000\u0000\u0564"+ + "\u0562\u0001\u0000\u0000\u0000\u0564\u0565\u0001\u0000\u0000\u0000\u0565"+ + "\u0567\u0001\u0000\u0000\u0000\u0566\u0564\u0001\u0000\u0000\u0000\u0567"+ + "\u0568\u0003r9\u0000\u0568\u0569\u0005f\u0000\u0000\u0569\u056a\u0005"+ + "9\u0000\u0000\u056a\u056c\u0005:\u0000\u0000\u056b\u056d\u0003\u001e\u000f"+ + "\u0000\u056c\u056b\u0001\u0000\u0000\u0000\u056c\u056d\u0001\u0000\u0000"+ + "\u0000\u056d\u056f\u0001\u0000\u0000\u0000\u056e\u0570\u0003\u00e2q\u0000"+ + "\u056f\u056e\u0001\u0000\u0000\u0000\u056f\u0570\u0001\u0000\u0000\u0000"+ + "\u0570\u0571\u0001\u0000\u0000\u0000\u0571\u0572\u0005?\u0000\u0000\u0572"+ + "\u00df\u0001\u0000\u0000\u0000\u0573\u0577\u0003\u00e4r\u0000\u0574\u0577"+ + "\u0005#\u0000\u0000\u0575\u0577\u0005\u0001\u0000\u0000\u0576\u0573\u0001"+ + "\u0000\u0000\u0000\u0576\u0574\u0001\u0000\u0000\u0000\u0576\u0575\u0001"+ + "\u0000\u0000\u0000\u0577\u00e1\u0001\u0000\u0000\u0000\u0578\u0579\u0005"+ + "\f\u0000\u0000\u0579\u057a\u0003\u00ecv\u0000\u057a\u00e3\u0001\u0000"+ + "\u0000\u0000\u057b\u057f\u0003\u00e6s\u0000\u057c\u057f\u0003\u00f2y\u0000"+ + "\u057d\u057f\u0003\u00f4z\u0000\u057e\u057b\u0001\u0000\u0000\u0000\u057e"+ + "\u057c\u0001\u0000\u0000\u0000\u057e\u057d\u0001\u0000\u0000\u0000\u057f"+ + "\u00e5\u0001\u0000\u0000\u0000\u0580\u0581\u0005g\u0000\u0000\u0581\u0582"+ + "\u00034\u001a\u0000\u0582\u0584\u00059\u0000\u0000\u0583\u0585\u0003\u00e8"+ + "t\u0000\u0584\u0583\u0001\u0000\u0000\u0000\u0584\u0585\u0001\u0000\u0000"+ + "\u0000\u0585\u0586\u0001\u0000\u0000\u0000\u0586\u0587\u0005:\u0000\u0000"+ + "\u0587\u00e7\u0001\u0000\u0000\u0000\u0588\u058d\u0003\u00eau\u0000\u0589"+ + "\u058a\u0005@\u0000\u0000\u058a\u058c\u0003\u00eau\u0000\u058b\u0589\u0001"+ + "\u0000\u0000\u0000\u058c\u058f\u0001\u0000\u0000\u0000\u058d\u058b\u0001"+ + "\u0000\u0000\u0000\u058d\u058e\u0001\u0000\u0000\u0000\u058e\u00e9\u0001"+ + "\u0000\u0000\u0000\u058f\u058d\u0001\u0000\u0000\u0000\u0590\u0591\u0005"+ + "f\u0000\u0000\u0591\u0592\u0005B\u0000\u0000\u0592\u0593\u0003\u00ecv"+ + "\u0000\u0593\u00eb\u0001\u0000\u0000\u0000\u0594\u0598\u0003\u01ae\u00d7"+ + "\u0000\u0595\u0598\u0003\u00eew\u0000\u0596\u0598\u0003\u00e4r\u0000\u0597"+ + "\u0594\u0001\u0000\u0000\u0000\u0597\u0595\u0001\u0000\u0000\u0000\u0597"+ + "\u0596\u0001\u0000\u0000\u0000\u0598\u00ed\u0001\u0000\u0000\u0000\u0599"+ + "\u059b\u0005;\u0000\u0000\u059a\u059c\u0003\u00f0x\u0000\u059b\u059a\u0001"+ + "\u0000\u0000\u0000\u059b\u059c\u0001\u0000\u0000\u0000\u059c\u059e\u0001"+ + "\u0000\u0000\u0000\u059d\u059f\u0005@\u0000\u0000\u059e\u059d\u0001\u0000"+ + "\u0000\u0000\u059e\u059f\u0001\u0000\u0000\u0000\u059f\u05a0\u0001\u0000"+ + "\u0000\u0000\u05a0\u05a1\u0005<\u0000\u0000\u05a1\u00ef\u0001\u0000\u0000"+ + "\u0000\u05a2\u05a7\u0003\u00ecv\u0000\u05a3\u05a4\u0005@\u0000\u0000\u05a4"+ + "\u05a6\u0003\u00ecv\u0000\u05a5\u05a3\u0001\u0000\u0000\u0000\u05a6\u05a9"+ + "\u0001\u0000\u0000\u0000\u05a7\u05a5\u0001\u0000\u0000\u0000\u05a7\u05a8"+ + "\u0001\u0000\u0000\u0000\u05a8\u00f1\u0001\u0000\u0000\u0000\u05a9\u05a7"+ + "\u0001\u0000\u0000\u0000\u05aa\u05ab\u0005g\u0000\u0000\u05ab\u05ac\u0003"+ + "4\u001a\u0000\u05ac\u00f3\u0001\u0000\u0000\u0000\u05ad\u05ae\u0005g\u0000"+ + "\u0000\u05ae\u05af\u00034\u001a\u0000\u05af\u05b0\u00059\u0000\u0000\u05b0"+ + "\u05b1\u0003\u00ecv\u0000\u05b1\u05b2\u0005:\u0000\u0000\u05b2\u00f5\u0001"+ + "\u0000\u0000\u0000\u05b3\u05b5\u0005;\u0000\u0000\u05b4\u05b6\u0003\u00f8"+ + "|\u0000\u05b5\u05b4\u0001\u0000\u0000\u0000\u05b5\u05b6\u0001\u0000\u0000"+ + "\u0000\u05b6\u05b8\u0001\u0000\u0000\u0000\u05b7\u05b9\u0005@\u0000\u0000"+ + "\u05b8\u05b7\u0001\u0000\u0000\u0000\u05b8\u05b9\u0001\u0000\u0000\u0000"+ + "\u05b9\u05ba\u0001\u0000\u0000\u0000\u05ba\u05bb\u0005<\u0000\u0000\u05bb"+ + "\u00f7\u0001\u0000\u0000\u0000\u05bc\u05c1\u0003p8\u0000\u05bd\u05be\u0005"+ + "@\u0000\u0000\u05be\u05c0\u0003p8\u0000\u05bf\u05bd\u0001\u0000\u0000"+ + "\u0000\u05c0\u05c3\u0001\u0000\u0000\u0000\u05c1\u05bf\u0001\u0000\u0000"+ + "\u0000\u05c1\u05c2\u0001\u0000\u0000\u0000\u05c2\u00f9\u0001\u0000\u0000"+ + "\u0000\u05c3\u05c1\u0001\u0000\u0000\u0000\u05c4\u05c6\u0005;\u0000\u0000"+ + "\u05c5\u05c7\u0003\u00fc~\u0000\u05c6\u05c5\u0001\u0000\u0000\u0000\u05c6"+ + "\u05c7\u0001\u0000\u0000\u0000\u05c7\u05c8\u0001\u0000\u0000\u0000\u05c8"+ + "\u05c9\u0005<\u0000\u0000\u05c9\u00fb\u0001\u0000\u0000\u0000\u05ca\u05cc"+ + "\u0003\u00fe\u007f\u0000\u05cb\u05ca\u0001\u0000\u0000\u0000\u05cc\u05cd"+ + "\u0001\u0000\u0000\u0000\u05cd\u05cb\u0001\u0000\u0000\u0000\u05cd\u05ce"+ + "\u0001\u0000\u0000\u0000\u05ce\u00fd\u0001\u0000\u0000\u0000\u05cf\u05d3"+ + "\u0003\u0100\u0080\u0000\u05d0\u05d3\u0003P(\u0000\u05d1\u05d3\u0003\u0104"+ + "\u0082\u0000\u05d2\u05cf\u0001\u0000\u0000\u0000\u05d2\u05d0\u0001\u0000"+ + "\u0000\u0000\u05d2\u05d1\u0001\u0000\u0000\u0000\u05d3\u00ff\u0001\u0000"+ + "\u0000\u0000\u05d4\u05d5\u0003\u0102\u0081\u0000\u05d5\u05d6\u0005?\u0000"+ + "\u0000\u05d6\u0101\u0001\u0000\u0000\u0000\u05d7\u05d9\u0003\u009aM\u0000"+ + "\u05d8\u05d7\u0001\u0000\u0000\u0000\u05d9\u05dc\u0001\u0000\u0000\u0000"+ + "\u05da\u05d8\u0001\u0000\u0000\u0000\u05da\u05db\u0001\u0000\u0000\u0000"+ + "\u05db\u05dd\u0001\u0000\u0000\u0000\u05dc\u05da\u0001\u0000\u0000\u0000"+ + "\u05dd\u05de\u0003r9\u0000\u05de\u05df\u0003j5\u0000\u05df\u0103\u0001"+ + "\u0000\u0000\u0000\u05e0\u05e7\u0003\u0108\u0084\u0000\u05e1\u05e7\u0003"+ + "\u010c\u0086\u0000\u05e2\u05e7\u0003\u0114\u008a\u0000\u05e3\u05e7\u0003"+ + "\u0116\u008b\u0000\u05e4\u05e7\u0003\u0128\u0094\u0000\u05e5\u05e7\u0003"+ + "\u012e\u0097\u0000\u05e6\u05e0\u0001\u0000\u0000\u0000\u05e6\u05e1\u0001"+ + "\u0000\u0000\u0000\u05e6\u05e2\u0001\u0000\u0000\u0000\u05e6\u05e3\u0001"+ + "\u0000\u0000\u0000\u05e6\u05e4\u0001\u0000\u0000\u0000\u05e6\u05e5\u0001"+ + "\u0000\u0000\u0000\u05e7\u0105\u0001\u0000\u0000\u0000\u05e8\u05ee\u0003"+ + "\u0108\u0084\u0000\u05e9\u05ee\u0003\u010e\u0087\u0000\u05ea\u05ee\u0003"+ + "\u0118\u008c\u0000\u05eb\u05ee\u0003\u012a\u0095\u0000\u05ec\u05ee\u0003"+ + "\u0130\u0098\u0000\u05ed\u05e8\u0001\u0000\u0000\u0000\u05ed\u05e9\u0001"+ + "\u0000\u0000\u0000\u05ed\u05ea\u0001\u0000\u0000\u0000\u05ed\u05eb\u0001"+ + "\u0000\u0000\u0000\u05ed\u05ec\u0001\u0000\u0000\u0000\u05ee\u0107\u0001"+ + "\u0000\u0000\u0000\u05ef\u05fc\u0003\u00fa}\u0000\u05f0\u05fc\u0003\u010a"+ + "\u0085\u0000\u05f1\u05fc\u0003\u0110\u0088\u0000\u05f2\u05fc\u0003\u011a"+ + "\u008d\u0000\u05f3\u05fc\u0003\u011c\u008e\u0000\u05f4\u05fc\u0003\u012c"+ + "\u0096\u0000\u05f5\u05fc\u0003\u0140\u00a0\u0000\u05f6\u05fc\u0003\u0142"+ + "\u00a1\u0000\u05f7\u05fc\u0003\u0144\u00a2\u0000\u05f8\u05fc\u0003\u0148"+ + "\u00a4\u0000\u05f9\u05fc\u0003\u0146\u00a3\u0000\u05fa\u05fc\u0003\u014a"+ + "\u00a5\u0000\u05fb\u05ef\u0001\u0000\u0000\u0000\u05fb\u05f0\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f1\u0001\u0000\u0000\u0000\u05fb\u05f2\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f3\u0001\u0000\u0000\u0000\u05fb\u05f4\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f5\u0001\u0000\u0000\u0000\u05fb\u05f6\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f7\u0001\u0000\u0000\u0000\u05fb\u05f8\u0001\u0000"+ + "\u0000\u0000\u05fb\u05f9\u0001\u0000\u0000\u0000\u05fb\u05fa\u0001\u0000"+ + "\u0000\u0000\u05fc\u0109\u0001\u0000\u0000\u0000\u05fd\u05fe\u0005?\u0000"+ + "\u0000\u05fe\u010b\u0001\u0000\u0000\u0000\u05ff\u0600\u0005f\u0000\u0000"+ + "\u0600\u0601\u0005H\u0000\u0000\u0601\u0602\u0003\u0104\u0082\u0000\u0602"+ + "\u010d\u0001\u0000\u0000\u0000\u0603\u0604\u0005f\u0000\u0000\u0604\u0605"+ + "\u0005H\u0000\u0000\u0605\u0606\u0003\u0106\u0083\u0000\u0606\u010f\u0001"+ + "\u0000\u0000\u0000\u0607\u0608\u0003\u0112\u0089\u0000\u0608\u0609\u0005"+ + "?\u0000\u0000\u0609\u0111\u0001\u0000\u0000\u0000\u060a\u0612\u0003\u01a8"+ + "\u00d4\u0000\u060b\u0612\u0003\u01c6\u00e3\u0000\u060c\u0612\u0003\u01c8"+ + "\u00e4\u0000\u060d\u0612\u0003\u01ce\u00e7\u0000\u060e\u0612\u0003\u01d2"+ + "\u00e9\u0000\u060f\u0612\u0003\u0186\u00c3\u0000\u0610\u0612\u0003\u0172"+ + "\u00b9\u0000\u0611\u060a\u0001\u0000\u0000\u0000\u0611\u060b\u0001\u0000"+ + "\u0000\u0000\u0611\u060c\u0001\u0000\u0000\u0000\u0611\u060d\u0001\u0000"+ + "\u0000\u0000\u0611\u060e\u0001\u0000\u0000\u0000\u0611\u060f\u0001\u0000"+ + "\u0000\u0000\u0611\u0610\u0001\u0000\u0000\u0000\u0612\u0113\u0001\u0000"+ + "\u0000\u0000\u0613\u0614\u0005\u0016\u0000\u0000\u0614\u0615\u00059\u0000"+ + "\u0000\u0615\u0616\u0003\u019c\u00ce\u0000\u0616\u0617\u0005:\u0000\u0000"+ + "\u0617\u0618\u0003\u0104\u0082\u0000\u0618\u0115\u0001\u0000\u0000\u0000"+ + "\u0619\u061a\u0005\u0016\u0000\u0000\u061a\u061b\u00059\u0000\u0000\u061b"+ + "\u061c\u0003\u019c\u00ce\u0000\u061c\u061d\u0005:\u0000\u0000\u061d\u061e"+ + "\u0003\u0106\u0083\u0000\u061e\u061f\u0005\u000f\u0000\u0000\u061f\u0620"+ + "\u0003\u0104\u0082\u0000\u0620\u0117\u0001\u0000\u0000\u0000\u0621\u0622"+ + "\u0005\u0016\u0000\u0000\u0622\u0623\u00059\u0000\u0000\u0623\u0624\u0003"+ + "\u019c\u00ce\u0000\u0624\u0625\u0005:\u0000\u0000\u0625\u0626\u0003\u0106"+ + "\u0083\u0000\u0626\u0627\u0005\u000f\u0000\u0000\u0627\u0628\u0003\u0106"+ + "\u0083\u0000\u0628\u0119\u0001\u0000\u0000\u0000\u0629\u062a\u0005\u0002"+ + "\u0000\u0000\u062a\u062b\u0003\u019c\u00ce\u0000\u062b\u062c\u0005?\u0000"+ + "\u0000\u062c\u0634\u0001\u0000\u0000\u0000\u062d\u062e\u0005\u0002\u0000"+ + "\u0000\u062e\u062f\u0003\u019c\u00ce\u0000\u062f\u0630\u0005H\u0000\u0000"+ + "\u0630\u0631\u0003\u019c\u00ce\u0000\u0631\u0632\u0005?\u0000\u0000\u0632"+ + "\u0634\u0001\u0000\u0000\u0000\u0633\u0629\u0001\u0000\u0000\u0000\u0633"+ + "\u062d\u0001\u0000\u0000\u0000\u0634\u011b\u0001\u0000\u0000\u0000\u0635"+ + "\u0636\u0005)\u0000\u0000\u0636\u0637\u00059\u0000\u0000\u0637\u0638\u0003"+ + "\u019c\u00ce\u0000\u0638\u0639\u0005:\u0000\u0000\u0639\u063a\u0003\u011e"+ + "\u008f\u0000\u063a\u011d\u0001\u0000\u0000\u0000\u063b\u063f\u0005;\u0000"+ + "\u0000\u063c\u063e\u0003\u0120\u0090\u0000\u063d\u063c\u0001\u0000\u0000"+ + "\u0000\u063e\u0641\u0001\u0000\u0000\u0000\u063f\u063d\u0001\u0000\u0000"+ + "\u0000\u063f\u0640\u0001\u0000\u0000\u0000\u0640\u0645\u0001\u0000\u0000"+ + "\u0000\u0641\u063f\u0001\u0000\u0000\u0000\u0642\u0644\u0003\u0124\u0092"+ + "\u0000\u0643\u0642\u0001\u0000\u0000\u0000\u0644\u0647\u0001\u0000\u0000"+ + "\u0000\u0645\u0643\u0001\u0000\u0000\u0000\u0645\u0646\u0001\u0000\u0000"+ + "\u0000\u0646\u0648\u0001\u0000\u0000\u0000\u0647\u0645\u0001\u0000\u0000"+ + "\u0000\u0648\u0649\u0005<\u0000\u0000\u0649\u011f\u0001\u0000\u0000\u0000"+ + "\u064a\u064b\u0003\u0122\u0091\u0000\u064b\u064c\u0003\u00fc~\u0000\u064c"+ + "\u0121\u0001\u0000\u0000\u0000\u064d\u0651\u0003\u0124\u0092\u0000\u064e"+ + "\u0650\u0003\u0124\u0092\u0000\u064f\u064e\u0001\u0000\u0000\u0000\u0650"+ + "\u0653\u0001\u0000\u0000\u0000\u0651\u064f\u0001\u0000\u0000\u0000\u0651"+ + "\u0652\u0001\u0000\u0000\u0000\u0652\u0123\u0001\u0000\u0000\u0000\u0653"+ + "\u0651\u0001\u0000\u0000\u0000\u0654\u0655\u0005\u0006\u0000\u0000\u0655"+ + "\u0656\u0003\u019a\u00cd\u0000\u0656\u0657\u0005H\u0000\u0000\u0657\u065f"+ + "\u0001\u0000\u0000\u0000\u0658\u0659\u0005\u0006\u0000\u0000\u0659\u065a"+ + "\u0003\u0126\u0093\u0000\u065a\u065b\u0005H\u0000\u0000\u065b\u065f\u0001"+ + "\u0000\u0000\u0000\u065c\u065d\u0005\f\u0000\u0000\u065d\u065f\u0005H"+ + "\u0000\u0000\u065e\u0654\u0001\u0000\u0000\u0000\u065e\u0658\u0001\u0000"+ + "\u0000\u0000\u065e\u065c\u0001\u0000\u0000\u0000\u065f\u0125\u0001\u0000"+ + "\u0000\u0000\u0660\u0661\u0005f\u0000\u0000\u0661\u0127\u0001\u0000\u0000"+ + "\u0000\u0662\u0663\u00052\u0000\u0000\u0663\u0664\u00059\u0000\u0000\u0664"+ + "\u0665\u0003\u019c\u00ce\u0000\u0665\u0666\u0005:\u0000\u0000\u0666\u0667"+ + "\u0003\u0104\u0082\u0000\u0667\u0129\u0001\u0000\u0000\u0000\u0668\u0669"+ + "\u00052\u0000\u0000\u0669\u066a\u00059\u0000\u0000\u066a\u066b\u0003\u019c"+ + "\u00ce\u0000\u066b\u066c\u0005:\u0000\u0000\u066c\u066d\u0003\u0106\u0083"+ + "\u0000\u066d\u012b\u0001\u0000\u0000\u0000\u066e\u066f\u0005\r\u0000\u0000"+ + "\u066f\u0670\u0003\u0104\u0082\u0000\u0670\u0671\u00052\u0000\u0000\u0671"+ + "\u0672\u00059\u0000\u0000\u0672\u0673\u0003\u019c\u00ce\u0000\u0673\u0674"+ + "\u0005:\u0000\u0000\u0674\u0675\u0005?\u0000\u0000\u0675\u012d\u0001\u0000"+ + "\u0000\u0000\u0676\u0679\u0003\u0132\u0099\u0000\u0677\u0679\u0003\u013c"+ + "\u009e\u0000\u0678\u0676\u0001\u0000\u0000\u0000\u0678\u0677\u0001\u0000"+ + "\u0000\u0000\u0679\u012f\u0001\u0000\u0000\u0000\u067a\u067d\u0003\u0134"+ + "\u009a\u0000\u067b\u067d\u0003\u013e\u009f\u0000\u067c\u067a\u0001\u0000"+ + "\u0000\u0000\u067c\u067b\u0001\u0000\u0000\u0000\u067d\u0131\u0001\u0000"+ + "\u0000\u0000\u067e\u067f\u0005\u0015\u0000\u0000\u067f\u0681\u00059\u0000"+ + "\u0000\u0680\u0682\u0003\u0136\u009b\u0000\u0681\u0680\u0001\u0000\u0000"+ + "\u0000\u0681\u0682\u0001\u0000\u0000\u0000\u0682\u0683\u0001\u0000\u0000"+ + "\u0000\u0683\u0685\u0005?\u0000\u0000\u0684\u0686\u0003\u019c\u00ce\u0000"+ + "\u0685\u0684\u0001\u0000\u0000\u0000\u0685\u0686\u0001\u0000\u0000\u0000"+ + "\u0686\u0687\u0001\u0000\u0000\u0000\u0687\u0689\u0005?\u0000\u0000\u0688"+ + "\u068a\u0003\u0138\u009c\u0000\u0689\u0688\u0001\u0000\u0000\u0000\u0689"+ + "\u068a\u0001\u0000\u0000\u0000\u068a\u068b\u0001\u0000\u0000\u0000\u068b"+ + "\u068c\u0005:\u0000\u0000\u068c\u068d\u0003\u0104\u0082\u0000\u068d\u0133"+ + "\u0001\u0000\u0000\u0000\u068e\u068f\u0005\u0015\u0000\u0000\u068f\u0691"+ + "\u00059\u0000\u0000\u0690\u0692\u0003\u0136\u009b\u0000\u0691\u0690\u0001"+ + "\u0000\u0000\u0000\u0691\u0692\u0001\u0000\u0000\u0000\u0692\u0693\u0001"+ + "\u0000\u0000\u0000\u0693\u0695\u0005?\u0000\u0000\u0694\u0696\u0003\u019c"+ + "\u00ce\u0000\u0695\u0694\u0001\u0000\u0000\u0000\u0695\u0696\u0001\u0000"+ + "\u0000\u0000\u0696\u0697\u0001\u0000\u0000\u0000\u0697\u0699\u0005?\u0000"+ + "\u0000\u0698\u069a\u0003\u0138\u009c\u0000\u0699\u0698\u0001\u0000\u0000"+ + "\u0000\u0699\u069a\u0001\u0000\u0000\u0000\u069a\u069b\u0001\u0000\u0000"+ + "\u0000\u069b\u069c\u0005:\u0000\u0000\u069c\u069d\u0003\u0106\u0083\u0000"+ + "\u069d\u0135\u0001\u0000\u0000\u0000\u069e\u06a1\u0003\u013a\u009d\u0000"+ + "\u069f\u06a1\u0003\u0102\u0081\u0000\u06a0\u069e\u0001\u0000\u0000\u0000"+ + "\u06a0\u069f\u0001\u0000\u0000\u0000\u06a1\u0137\u0001\u0000\u0000\u0000"+ + "\u06a2\u06a3\u0003\u013a\u009d\u0000\u06a3\u0139\u0001\u0000\u0000\u0000"+ + "\u06a4\u06a9\u0003\u0112\u0089\u0000\u06a5\u06a6\u0005@\u0000\u0000\u06a6"+ + "\u06a8\u0003\u0112\u0089\u0000\u06a7\u06a5\u0001\u0000\u0000\u0000\u06a8"+ + "\u06ab\u0001\u0000\u0000\u0000\u06a9\u06a7\u0001\u0000\u0000\u0000\u06a9"+ + "\u06aa\u0001\u0000\u0000\u0000\u06aa\u013b\u0001\u0000\u0000\u0000\u06ab"+ + "\u06a9\u0001\u0000\u0000\u0000\u06ac\u06ad\u0005\u0015\u0000\u0000\u06ad"+ + "\u06b1\u00059\u0000\u0000\u06ae\u06b0\u0003\u009aM\u0000\u06af\u06ae\u0001"+ + "\u0000\u0000\u0000\u06b0\u06b3\u0001\u0000\u0000\u0000\u06b1\u06af\u0001"+ + "\u0000\u0000\u0000\u06b1\u06b2\u0001\u0000\u0000\u0000\u06b2\u06b4\u0001"+ + "\u0000\u0000\u0000\u06b3\u06b1\u0001\u0000\u0000\u0000\u06b4\u06b5\u0003"+ + "r9\u0000\u06b5\u06b6\u0003n7\u0000\u06b6\u06b7\u0005H\u0000\u0000\u06b7"+ + "\u06b8\u0003\u019c\u00ce\u0000\u06b8\u06b9\u0005:\u0000\u0000\u06b9\u06ba"+ + "\u0003\u0104\u0082\u0000\u06ba\u013d\u0001\u0000\u0000\u0000\u06bb\u06bc"+ + "\u0005\u0015\u0000\u0000\u06bc\u06c0\u00059\u0000\u0000\u06bd\u06bf\u0003"+ + "\u009aM\u0000\u06be\u06bd\u0001\u0000\u0000\u0000\u06bf\u06c2\u0001\u0000"+ + "\u0000\u0000\u06c0\u06be\u0001\u0000\u0000\u0000\u06c0\u06c1\u0001\u0000"+ + "\u0000\u0000\u06c1\u06c3\u0001\u0000\u0000\u0000\u06c2\u06c0\u0001\u0000"+ + "\u0000\u0000\u06c3\u06c4\u0003r9\u0000\u06c4\u06c5\u0003n7\u0000\u06c5"+ + "\u06c6\u0005H\u0000\u0000\u06c6\u06c7\u0003\u019c\u00ce\u0000\u06c7\u06c8"+ + "\u0005:\u0000\u0000\u06c8\u06c9\u0003\u0106\u0083\u0000\u06c9\u013f\u0001"+ + "\u0000\u0000\u0000\u06ca\u06cc\u0005\u0004\u0000\u0000\u06cb\u06cd\u0005"+ + "f\u0000\u0000\u06cc\u06cb\u0001\u0000\u0000\u0000\u06cc\u06cd\u0001\u0000"+ + "\u0000\u0000\u06cd\u06ce\u0001\u0000\u0000\u0000\u06ce\u06cf\u0005?\u0000"+ + "\u0000\u06cf\u0141\u0001\u0000\u0000\u0000\u06d0\u06d2\u0005\u000b\u0000"+ + "\u0000\u06d1\u06d3\u0005f\u0000\u0000\u06d2\u06d1\u0001\u0000\u0000\u0000"+ + "\u06d2\u06d3\u0001\u0000\u0000\u0000\u06d3\u06d4\u0001\u0000\u0000\u0000"+ + "\u06d4\u06d5\u0005?\u0000\u0000\u06d5\u0143\u0001\u0000\u0000\u0000\u06d6"+ + "\u06d8\u0005$\u0000\u0000\u06d7\u06d9\u0003\u019c\u00ce\u0000\u06d8\u06d7"+ + "\u0001\u0000\u0000\u0000\u06d8\u06d9\u0001\u0000\u0000\u0000\u06d9\u06da"+ + "\u0001\u0000\u0000\u0000\u06da\u06db\u0005?\u0000\u0000\u06db\u0145\u0001"+ + "\u0000\u0000\u0000\u06dc\u06dd\u0005,\u0000\u0000\u06dd\u06de\u0003\u019c"+ + "\u00ce\u0000\u06de\u06df\u0005?\u0000\u0000\u06df\u0147\u0001\u0000\u0000"+ + "\u0000\u06e0\u06e1\u0005*\u0000\u0000\u06e1\u06e2\u00059\u0000\u0000\u06e2"+ + "\u06e3\u0003\u019c\u00ce\u0000\u06e3\u06e4\u0005:\u0000\u0000\u06e4\u06e5"+ + "\u0003\u00fa}\u0000\u06e5\u0149\u0001\u0000\u0000\u0000\u06e6\u06e7\u0005"+ + "/\u0000\u0000\u06e7\u06e8\u0003\u00fa}\u0000\u06e8\u06e9\u0003\u014c\u00a6"+ + "\u0000\u06e9\u06f3\u0001\u0000\u0000\u0000\u06ea\u06eb\u0005/\u0000\u0000"+ + "\u06eb\u06ed\u0003\u00fa}\u0000\u06ec\u06ee\u0003\u014c\u00a6\u0000\u06ed"+ + "\u06ec\u0001\u0000\u0000\u0000\u06ed\u06ee\u0001\u0000\u0000\u0000\u06ee"+ + "\u06ef\u0001\u0000\u0000\u0000\u06ef\u06f0\u0003\u0154\u00aa\u0000\u06f0"+ + "\u06f3\u0001\u0000\u0000\u0000\u06f1\u06f3\u0003\u0156\u00ab\u0000\u06f2"+ + "\u06e6\u0001\u0000\u0000\u0000\u06f2\u06ea\u0001\u0000\u0000\u0000\u06f2"+ + "\u06f1\u0001\u0000\u0000\u0000\u06f3\u014b\u0001\u0000\u0000\u0000\u06f4"+ + "\u06f8\u0003\u014e\u00a7\u0000\u06f5\u06f7\u0003\u014e\u00a7\u0000\u06f6"+ + "\u06f5\u0001\u0000\u0000\u0000\u06f7\u06fa\u0001\u0000\u0000\u0000\u06f8"+ + "\u06f6\u0001\u0000\u0000\u0000\u06f8\u06f9\u0001\u0000\u0000\u0000\u06f9"+ + "\u014d\u0001\u0000\u0000\u0000\u06fa\u06f8\u0001\u0000\u0000\u0000\u06fb"+ + "\u06fc\u0005\u0007\u0000\u0000\u06fc\u06fd\u00059\u0000\u0000\u06fd\u06fe"+ + "\u0003\u0150\u00a8\u0000\u06fe\u06ff\u0005:\u0000\u0000\u06ff\u0700\u0003"+ + "\u00fa}\u0000\u0700\u014f\u0001\u0000\u0000\u0000\u0701\u0703\u0003\u009a"+ + "M\u0000\u0702\u0701\u0001\u0000\u0000\u0000\u0703\u0706\u0001\u0000\u0000"+ + "\u0000\u0704\u0702\u0001\u0000\u0000\u0000\u0704\u0705\u0001\u0000\u0000"+ + "\u0000\u0705\u0707\u0001\u0000\u0000\u0000\u0706\u0704\u0001\u0000\u0000"+ + "\u0000\u0707\u0708\u0003\u0152\u00a9\u0000\u0708\u0709\u0003n7\u0000\u0709"+ + "\u0151\u0001\u0000\u0000\u0000\u070a\u070f\u0003z=\u0000\u070b\u070c\u0005"+ + "V\u0000\u0000\u070c\u070e\u0003\u000e\u0007\u0000\u070d\u070b\u0001\u0000"+ + "\u0000\u0000\u070e\u0711\u0001\u0000\u0000\u0000\u070f\u070d\u0001\u0000"+ + "\u0000\u0000\u070f\u0710\u0001\u0000\u0000\u0000\u0710\u0153\u0001\u0000"+ + "\u0000\u0000\u0711\u070f\u0001\u0000\u0000\u0000\u0712\u0713\u0005\u0013"+ + "\u0000\u0000\u0713\u0714\u0003\u00fa}\u0000\u0714\u0155\u0001\u0000\u0000"+ + "\u0000\u0715\u0716\u0005/\u0000\u0000\u0716\u0717\u0003\u0158\u00ac\u0000"+ + "\u0717\u0719\u0003\u00fa}\u0000\u0718\u071a\u0003\u014c\u00a6\u0000\u0719"+ + "\u0718\u0001\u0000\u0000\u0000\u0719\u071a\u0001\u0000\u0000\u0000\u071a"+ + "\u071c\u0001\u0000\u0000\u0000\u071b\u071d\u0003\u0154\u00aa\u0000\u071c"+ + "\u071b\u0001\u0000\u0000\u0000\u071c\u071d\u0001\u0000\u0000\u0000\u071d"+ + "\u0157\u0001\u0000\u0000\u0000\u071e\u071f\u00059\u0000\u0000\u071f\u0721"+ + "\u0003\u015a\u00ad\u0000\u0720\u0722\u0005?\u0000\u0000\u0721\u0720\u0001"+ + "\u0000\u0000\u0000\u0721\u0722\u0001\u0000\u0000\u0000\u0722\u0723\u0001"+ + "\u0000\u0000\u0000\u0723\u0724\u0005:\u0000\u0000\u0724\u0159\u0001\u0000"+ + "\u0000\u0000\u0725\u072a\u0003\u015c\u00ae\u0000\u0726\u0727\u0005?\u0000"+ + "\u0000\u0727\u0729\u0003\u015c\u00ae\u0000\u0728\u0726\u0001\u0000\u0000"+ + "\u0000\u0729\u072c\u0001\u0000\u0000\u0000\u072a\u0728\u0001\u0000\u0000"+ + "\u0000\u072a\u072b\u0001\u0000\u0000\u0000\u072b\u015b\u0001\u0000\u0000"+ + "\u0000\u072c\u072a\u0001\u0000\u0000\u0000\u072d\u072f\u0003\u009aM\u0000"+ + "\u072e\u072d\u0001\u0000\u0000\u0000\u072f\u0732\u0001\u0000\u0000\u0000"+ + "\u0730\u072e\u0001\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000"+ + "\u0731\u0733\u0001\u0000\u0000\u0000\u0732\u0730\u0001\u0000\u0000\u0000"+ + "\u0733\u0734\u0003r9\u0000\u0734\u0735\u0003n7\u0000\u0735\u0736\u0005"+ + "B\u0000\u0000\u0736\u0737\u0003\u019c\u00ce\u0000\u0737\u015d\u0001\u0000"+ + "\u0000\u0000\u0738\u073b\u0003\u016c\u00b6\u0000\u0739\u073b\u0003\u0194"+ + "\u00ca\u0000\u073a\u0738\u0001\u0000\u0000\u0000\u073a\u0739\u0001\u0000"+ + "\u0000\u0000\u073b\u073f\u0001\u0000\u0000\u0000\u073c\u073e\u0003\u0166"+ + "\u00b3\u0000\u073d\u073c\u0001\u0000\u0000\u0000\u073e\u0741\u0001\u0000"+ + "\u0000\u0000\u073f\u073d\u0001\u0000\u0000\u0000\u073f\u0740\u0001\u0000"+ + "\u0000\u0000\u0740\u015f\u0001\u0000\u0000\u0000\u0741\u073f\u0001\u0000"+ + "\u0000\u0000\u0742\u0760\u0003\u0000\u0000\u0000\u0743\u0748\u00034\u001a"+ + "\u0000\u0744\u0745\u0005=\u0000\u0000\u0745\u0747\u0005>\u0000\u0000\u0746"+ + "\u0744\u0001\u0000\u0000\u0000\u0747\u074a\u0001\u0000\u0000\u0000\u0748"+ + "\u0746\u0001\u0000\u0000\u0000\u0748\u0749\u0001\u0000\u0000\u0000\u0749"+ + "\u074b\u0001\u0000\u0000\u0000\u074a\u0748\u0001\u0000\u0000\u0000\u074b"+ + "\u074c\u0005A\u0000\u0000\u074c\u074d\u0005\t\u0000\u0000\u074d\u0760"+ + "\u0001\u0000\u0000\u0000\u074e\u074f\u00050\u0000\u0000\u074f\u0750\u0005"+ + "A\u0000\u0000\u0750\u0760\u0005\t\u0000\u0000\u0751\u0760\u0005+\u0000"+ + "\u0000\u0752\u0753\u00034\u001a\u0000\u0753\u0754\u0005A\u0000\u0000\u0754"+ + "\u0755\u0005+\u0000\u0000\u0755\u0760\u0001\u0000\u0000\u0000\u0756\u0757"+ + "\u00059\u0000\u0000\u0757\u0758\u0003\u019c\u00ce\u0000\u0758\u0759\u0005"+ + ":\u0000\u0000\u0759\u0760\u0001\u0000\u0000\u0000\u075a\u0760\u0003\u0172"+ + "\u00b9\u0000\u075b\u0760\u0003\u017a\u00bd\u0000\u075c\u0760\u0003\u0180"+ + "\u00c0\u0000\u075d\u0760\u0003\u0186\u00c3\u0000\u075e\u0760\u0003\u018e"+ + "\u00c7\u0000\u075f\u0742\u0001\u0000\u0000\u0000\u075f\u0743\u0001\u0000"+ + "\u0000\u0000\u075f\u074e\u0001\u0000\u0000\u0000\u075f\u0751\u0001\u0000"+ + "\u0000\u0000\u075f\u0752\u0001\u0000\u0000\u0000\u075f\u0756\u0001\u0000"+ + "\u0000\u0000\u075f\u075a\u0001\u0000\u0000\u0000\u075f\u075b\u0001\u0000"+ + "\u0000\u0000\u075f\u075c\u0001\u0000\u0000\u0000\u075f\u075d\u0001\u0000"+ + "\u0000\u0000\u075f\u075e\u0001\u0000\u0000\u0000\u0760\u0161\u0001\u0000"+ + "\u0000\u0000\u0761\u0762\u0001\u0000\u0000\u0000\u0762\u0163\u0001\u0000"+ + "\u0000\u0000\u0763\u0780\u0003\u0000\u0000\u0000\u0764\u0769\u00034\u001a"+ + "\u0000\u0765\u0766\u0005=\u0000\u0000\u0766\u0768\u0005>\u0000\u0000\u0767"+ + "\u0765\u0001\u0000\u0000\u0000\u0768\u076b\u0001\u0000\u0000\u0000\u0769"+ + "\u0767\u0001\u0000\u0000\u0000\u0769\u076a\u0001\u0000\u0000\u0000\u076a"+ + "\u076c\u0001\u0000\u0000\u0000\u076b\u0769\u0001\u0000\u0000\u0000\u076c"+ + "\u076d\u0005A\u0000\u0000\u076d\u076e\u0005\t\u0000\u0000\u076e\u0780"+ + "\u0001\u0000\u0000\u0000\u076f\u0770\u00050\u0000\u0000\u0770\u0771\u0005"+ + "A\u0000\u0000\u0771\u0780\u0005\t\u0000\u0000\u0772\u0780\u0005+\u0000"+ + "\u0000\u0773\u0774\u00034\u001a\u0000\u0774\u0775\u0005A\u0000\u0000\u0775"+ + "\u0776\u0005+\u0000\u0000\u0776\u0780\u0001\u0000\u0000\u0000\u0777\u0778"+ + "\u00059\u0000\u0000\u0778\u0779\u0003\u019c\u00ce\u0000\u0779\u077a\u0005"+ + ":\u0000\u0000\u077a\u0780\u0001\u0000\u0000\u0000\u077b\u0780\u0003\u0172"+ + "\u00b9\u0000\u077c\u0780\u0003\u017a\u00bd\u0000\u077d\u0780\u0003\u0186"+ + "\u00c3\u0000\u077e\u0780\u0003\u018e\u00c7\u0000\u077f\u0763\u0001\u0000"+ + "\u0000\u0000\u077f\u0764\u0001\u0000\u0000\u0000\u077f\u076f\u0001\u0000"+ + "\u0000\u0000\u077f\u0772\u0001\u0000\u0000\u0000\u077f\u0773\u0001\u0000"+ + "\u0000\u0000\u077f\u0777\u0001\u0000\u0000\u0000\u077f\u077b\u0001\u0000"+ + "\u0000\u0000\u077f\u077c\u0001\u0000\u0000\u0000\u077f\u077d\u0001\u0000"+ + "\u0000\u0000\u077f\u077e\u0001\u0000\u0000\u0000\u0780\u0165\u0001\u0000"+ + "\u0000\u0000\u0781\u0787\u0003\u0174\u00ba\u0000\u0782\u0787\u0003\u017c"+ + "\u00be\u0000\u0783\u0787\u0003\u0182\u00c1\u0000\u0784\u0787\u0003\u0188"+ + "\u00c4\u0000\u0785\u0787\u0003\u0190\u00c8\u0000\u0786\u0781\u0001\u0000"+ + "\u0000\u0000\u0786\u0782\u0001\u0000\u0000\u0000\u0786\u0783\u0001\u0000"+ + "\u0000\u0000\u0786\u0784\u0001\u0000\u0000\u0000\u0786\u0785\u0001\u0000"+ + "\u0000\u0000\u0787\u0167\u0001\u0000\u0000\u0000\u0788\u0789\u0001\u0000"+ + "\u0000\u0000\u0789\u0169\u0001\u0000\u0000\u0000\u078a\u078f\u0003\u0174"+ + "\u00ba\u0000\u078b\u078f\u0003\u017c\u00be\u0000\u078c\u078f\u0003\u0188"+ + "\u00c4\u0000\u078d\u078f\u0003\u0190\u00c8\u0000\u078e\u078a\u0001\u0000"+ + "\u0000\u0000\u078e\u078b\u0001\u0000\u0000\u0000\u078e\u078c\u0001\u0000"+ + "\u0000\u0000\u078e\u078d\u0001\u0000\u0000\u0000\u078f\u016b\u0001\u0000"+ + "\u0000\u0000\u0790\u07b9\u0003\u0000\u0000\u0000\u0791\u0796\u00034\u001a"+ + "\u0000\u0792\u0793\u0005=\u0000\u0000\u0793\u0795\u0005>\u0000\u0000\u0794"+ + "\u0792\u0001\u0000\u0000\u0000\u0795\u0798\u0001\u0000\u0000\u0000\u0796"+ + "\u0794\u0001\u0000\u0000\u0000\u0796\u0797\u0001\u0000\u0000\u0000\u0797"+ + "\u0799\u0001\u0000\u0000\u0000\u0798\u0796\u0001\u0000\u0000\u0000\u0799"+ + "\u079a\u0005A\u0000\u0000\u079a\u079b\u0005\t\u0000\u0000\u079b\u07b9"+ + "\u0001\u0000\u0000\u0000\u079c\u07a1\u0003t:\u0000\u079d\u079e\u0005="+ + "\u0000\u0000\u079e\u07a0\u0005>\u0000\u0000\u079f\u079d\u0001\u0000\u0000"+ + "\u0000\u07a0\u07a3\u0001\u0000\u0000\u0000\u07a1\u079f\u0001\u0000\u0000"+ + "\u0000\u07a1\u07a2\u0001\u0000\u0000\u0000\u07a2\u07a4\u0001\u0000\u0000"+ + "\u0000\u07a3\u07a1\u0001\u0000\u0000\u0000\u07a4\u07a5\u0005A\u0000\u0000"+ + "\u07a5\u07a6\u0005\t\u0000\u0000\u07a6\u07b9\u0001\u0000\u0000\u0000\u07a7"+ + "\u07a8\u00050\u0000\u0000\u07a8\u07a9\u0005A\u0000\u0000\u07a9\u07b9\u0005"+ + "\t\u0000\u0000\u07aa\u07b9\u0005+\u0000\u0000\u07ab\u07ac\u00034\u001a"+ + "\u0000\u07ac\u07ad\u0005A\u0000\u0000\u07ad\u07ae\u0005+\u0000\u0000\u07ae"+ + "\u07b9\u0001\u0000\u0000\u0000\u07af\u07b0\u00059\u0000\u0000\u07b0\u07b1"+ + "\u0003\u019c\u00ce\u0000\u07b1\u07b2\u0005:\u0000\u0000\u07b2\u07b9\u0001"+ + "\u0000\u0000\u0000\u07b3\u07b9\u0003\u0176\u00bb\u0000\u07b4\u07b9\u0003"+ + "\u017e\u00bf\u0000\u07b5\u07b9\u0003\u0184\u00c2\u0000\u07b6\u07b9\u0003"+ + "\u018a\u00c5\u0000\u07b7\u07b9\u0003\u0192\u00c9\u0000\u07b8\u0790\u0001"+ + "\u0000\u0000\u0000\u07b8\u0791\u0001\u0000\u0000\u0000\u07b8\u079c\u0001"+ + "\u0000\u0000\u0000\u07b8\u07a7\u0001\u0000\u0000\u0000\u07b8\u07aa\u0001"+ + "\u0000\u0000\u0000\u07b8\u07ab\u0001\u0000\u0000\u0000\u07b8\u07af\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b3\u0001\u0000\u0000\u0000\u07b8\u07b4\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b5\u0001\u0000\u0000\u0000\u07b8\u07b6\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b7\u0001\u0000\u0000\u0000\u07b9\u016d\u0001"+ + "\u0000\u0000\u0000\u07ba\u07bb\u0001\u0000\u0000\u0000\u07bb\u016f\u0001"+ + "\u0000\u0000\u0000\u07bc\u07e4\u0003\u0000\u0000\u0000\u07bd\u07c2\u0003"+ + "4\u001a\u0000\u07be\u07bf\u0005=\u0000\u0000\u07bf\u07c1\u0005>\u0000"+ + "\u0000\u07c0\u07be\u0001\u0000\u0000\u0000\u07c1\u07c4\u0001\u0000\u0000"+ + "\u0000\u07c2\u07c0\u0001\u0000\u0000\u0000\u07c2\u07c3\u0001\u0000\u0000"+ + "\u0000\u07c3\u07c5\u0001\u0000\u0000\u0000\u07c4\u07c2\u0001\u0000\u0000"+ + "\u0000\u07c5\u07c6\u0005A\u0000\u0000\u07c6\u07c7\u0005\t\u0000\u0000"+ + "\u07c7\u07e4\u0001\u0000\u0000\u0000\u07c8\u07cd\u0003t:\u0000\u07c9\u07ca"+ + "\u0005=\u0000\u0000\u07ca\u07cc\u0005>\u0000\u0000\u07cb\u07c9\u0001\u0000"+ + "\u0000\u0000\u07cc\u07cf\u0001\u0000\u0000\u0000\u07cd\u07cb\u0001\u0000"+ + "\u0000\u0000\u07cd\u07ce\u0001\u0000\u0000\u0000\u07ce\u07d0\u0001\u0000"+ + "\u0000\u0000\u07cf\u07cd\u0001\u0000\u0000\u0000\u07d0\u07d1\u0005A\u0000"+ + "\u0000\u07d1\u07d2\u0005\t\u0000\u0000\u07d2\u07e4\u0001\u0000\u0000\u0000"+ + "\u07d3\u07d4\u00050\u0000\u0000\u07d4\u07d5\u0005A\u0000\u0000\u07d5\u07e4"+ + "\u0005\t\u0000\u0000\u07d6\u07e4\u0005+\u0000\u0000\u07d7\u07d8\u0003"+ + "4\u001a\u0000\u07d8\u07d9\u0005A\u0000\u0000\u07d9\u07da\u0005+\u0000"+ + "\u0000\u07da\u07e4\u0001\u0000\u0000\u0000\u07db\u07dc\u00059\u0000\u0000"+ + "\u07dc\u07dd\u0003\u019c\u00ce\u0000\u07dd\u07de\u0005:\u0000\u0000\u07de"+ + "\u07e4\u0001\u0000\u0000\u0000\u07df\u07e4\u0003\u0176\u00bb\u0000\u07e0"+ + "\u07e4\u0003\u017e\u00bf\u0000\u07e1\u07e4\u0003\u018a\u00c5\u0000\u07e2"+ + "\u07e4\u0003\u0192\u00c9\u0000\u07e3\u07bc\u0001\u0000\u0000\u0000\u07e3"+ + "\u07bd\u0001\u0000\u0000\u0000\u07e3\u07c8\u0001\u0000\u0000\u0000\u07e3"+ + "\u07d3\u0001\u0000\u0000\u0000\u07e3\u07d6\u0001\u0000\u0000\u0000\u07e3"+ + "\u07d7\u0001\u0000\u0000\u0000\u07e3\u07db\u0001\u0000\u0000\u0000\u07e3"+ + "\u07df\u0001\u0000\u0000\u0000\u07e3\u07e0\u0001\u0000\u0000\u0000\u07e3"+ + "\u07e1\u0001\u0000\u0000\u0000\u07e3\u07e2\u0001\u0000\u0000\u0000\u07e4"+ + "\u0171\u0001\u0000\u0000\u0000\u07e5\u07e7\u0005\u001f\u0000\u0000\u07e6"+ + "\u07e8\u0003(\u0014\u0000\u07e7\u07e6\u0001\u0000\u0000\u0000\u07e7\u07e8"+ + "\u0001\u0000\u0000\u0000\u07e8\u07ec\u0001\u0000\u0000\u0000\u07e9\u07eb"+ + "\u0003\u00e4r\u0000\u07ea\u07e9\u0001\u0000\u0000\u0000\u07eb\u07ee\u0001"+ + "\u0000\u0000\u0000\u07ec\u07ea\u0001\u0000\u0000\u0000\u07ec\u07ed\u0001"+ + "\u0000\u0000\u0000\u07ed\u07ef\u0001\u0000\u0000\u0000\u07ee\u07ec\u0001"+ + "\u0000\u0000\u0000\u07ef\u07fa\u0005f\u0000\u0000\u07f0\u07f4\u0005A\u0000"+ + "\u0000\u07f1\u07f3\u0003\u00e4r\u0000\u07f2\u07f1\u0001\u0000\u0000\u0000"+ + "\u07f3\u07f6\u0001\u0000\u0000\u0000\u07f4\u07f2\u0001\u0000\u0000\u0000"+ + "\u07f4\u07f5\u0001\u0000\u0000\u0000\u07f5\u07f7\u0001\u0000\u0000\u0000"+ + "\u07f6\u07f4\u0001\u0000\u0000\u0000\u07f7\u07f9\u0005f\u0000\u0000\u07f8"+ + "\u07f0\u0001\u0000\u0000\u0000\u07f9\u07fc\u0001\u0000\u0000\u0000\u07fa"+ + "\u07f8\u0001\u0000\u0000\u0000\u07fa\u07fb\u0001\u0000\u0000\u0000\u07fb"+ + "\u07fe\u0001\u0000\u0000\u0000\u07fc\u07fa\u0001\u0000\u0000\u0000\u07fd"+ + "\u07ff\u0003\u0178\u00bc\u0000\u07fe\u07fd\u0001\u0000\u0000\u0000\u07fe"+ + "\u07ff\u0001\u0000\u0000\u0000\u07ff\u0800\u0001\u0000\u0000\u0000\u0800"+ + "\u0802\u00059\u0000\u0000\u0801\u0803\u0003\u018c\u00c6\u0000\u0802\u0801"+ + "\u0001\u0000\u0000\u0000\u0802\u0803\u0001\u0000\u0000\u0000\u0803\u0804"+ + "\u0001\u0000\u0000\u0000\u0804\u0806\u0005:\u0000\u0000\u0805\u0807\u0003"+ + "`0\u0000\u0806\u0805\u0001\u0000\u0000\u0000\u0806\u0807\u0001\u0000\u0000"+ + "\u0000\u0807\u0839\u0001\u0000\u0000\u0000\u0808\u0809\u00038\u001c\u0000"+ + "\u0809\u080a\u0005A\u0000\u0000\u080a\u080c\u0005\u001f\u0000\u0000\u080b"+ + "\u080d\u0003(\u0014\u0000\u080c\u080b\u0001\u0000\u0000\u0000\u080c\u080d"+ + "\u0001\u0000\u0000\u0000\u080d\u0811\u0001\u0000\u0000\u0000\u080e\u0810"+ + "\u0003\u00e4r\u0000\u080f\u080e\u0001\u0000\u0000\u0000\u0810\u0813\u0001"+ + "\u0000\u0000\u0000\u0811\u080f\u0001\u0000\u0000\u0000\u0811\u0812\u0001"+ + "\u0000\u0000\u0000\u0812\u0814\u0001\u0000\u0000\u0000\u0813\u0811\u0001"+ + "\u0000\u0000\u0000\u0814\u0816\u0005f\u0000\u0000\u0815\u0817\u0003\u0178"+ + "\u00bc\u0000\u0816\u0815\u0001\u0000\u0000\u0000\u0816\u0817\u0001\u0000"+ + "\u0000\u0000\u0817\u0818\u0001\u0000\u0000\u0000\u0818\u081a\u00059\u0000"+ + "\u0000\u0819\u081b\u0003\u018c\u00c6\u0000\u081a\u0819\u0001\u0000\u0000"+ + "\u0000\u081a\u081b\u0001\u0000\u0000\u0000\u081b\u081c\u0001\u0000\u0000"+ + "\u0000\u081c\u081e\u0005:\u0000\u0000\u081d\u081f\u0003`0\u0000\u081e"+ + "\u081d\u0001\u0000\u0000\u0000\u081e\u081f\u0001\u0000\u0000\u0000\u081f"+ + "\u0839\u0001\u0000\u0000\u0000\u0820\u0821\u0003\u015e\u00af\u0000\u0821"+ + "\u0822\u0005A\u0000\u0000\u0822\u0824\u0005\u001f\u0000\u0000\u0823\u0825"+ + "\u0003(\u0014\u0000\u0824\u0823\u0001\u0000\u0000\u0000\u0824\u0825\u0001"+ + "\u0000\u0000\u0000\u0825\u0829\u0001\u0000\u0000\u0000\u0826\u0828\u0003"+ + "\u00e4r\u0000\u0827\u0826\u0001\u0000\u0000\u0000\u0828\u082b\u0001\u0000"+ + "\u0000\u0000\u0829\u0827\u0001\u0000\u0000\u0000\u0829\u082a\u0001\u0000"+ + "\u0000\u0000\u082a\u082c\u0001\u0000\u0000\u0000\u082b\u0829\u0001\u0000"+ + "\u0000\u0000\u082c\u082e\u0005f\u0000\u0000\u082d\u082f\u0003\u0178\u00bc"+ + "\u0000\u082e\u082d\u0001\u0000\u0000\u0000\u082e\u082f\u0001\u0000\u0000"+ + "\u0000\u082f\u0830\u0001\u0000\u0000\u0000\u0830\u0832\u00059\u0000\u0000"+ + "\u0831\u0833\u0003\u018c\u00c6\u0000\u0832\u0831\u0001\u0000\u0000\u0000"+ + "\u0832\u0833\u0001\u0000\u0000\u0000\u0833\u0834\u0001\u0000\u0000\u0000"+ + "\u0834\u0836\u0005:\u0000\u0000\u0835\u0837\u0003`0\u0000\u0836\u0835"+ + "\u0001\u0000\u0000\u0000\u0836\u0837\u0001\u0000\u0000\u0000\u0837\u0839"+ + "\u0001\u0000\u0000\u0000\u0838\u07e5\u0001\u0000\u0000\u0000\u0838\u0808"+ + "\u0001\u0000\u0000\u0000\u0838\u0820\u0001\u0000\u0000\u0000\u0839\u0173"+ + "\u0001\u0000\u0000\u0000\u083a\u083b\u0005A\u0000\u0000\u083b\u083d\u0005"+ + "\u001f\u0000\u0000\u083c\u083e\u0003(\u0014\u0000\u083d\u083c\u0001\u0000"+ + "\u0000\u0000\u083d\u083e\u0001\u0000\u0000\u0000\u083e\u0842\u0001\u0000"+ + "\u0000\u0000\u083f\u0841\u0003\u00e4r\u0000\u0840\u083f\u0001\u0000\u0000"+ + "\u0000\u0841\u0844\u0001\u0000\u0000\u0000\u0842\u0840\u0001\u0000\u0000"+ + "\u0000\u0842\u0843\u0001\u0000\u0000\u0000\u0843\u0845\u0001\u0000\u0000"+ + "\u0000\u0844\u0842\u0001\u0000\u0000\u0000\u0845\u0847\u0005f\u0000\u0000"+ + "\u0846\u0848\u0003\u0178\u00bc\u0000\u0847\u0846\u0001\u0000\u0000\u0000"+ + "\u0847\u0848\u0001\u0000\u0000\u0000\u0848\u0849\u0001\u0000\u0000\u0000"+ + "\u0849\u084b\u00059\u0000\u0000\u084a\u084c\u0003\u018c\u00c6\u0000\u084b"+ + "\u084a\u0001\u0000\u0000\u0000\u084b\u084c\u0001\u0000\u0000\u0000\u084c"+ + "\u084d\u0001\u0000\u0000\u0000\u084d\u084f\u0005:\u0000\u0000\u084e\u0850"+ + "\u0003`0\u0000\u084f\u084e\u0001\u0000\u0000\u0000\u084f\u0850\u0001\u0000"+ + "\u0000\u0000\u0850\u0175\u0001\u0000\u0000\u0000\u0851\u0853\u0005\u001f"+ + "\u0000\u0000\u0852\u0854\u0003(\u0014\u0000\u0853\u0852\u0001\u0000\u0000"+ + "\u0000\u0853\u0854\u0001\u0000\u0000\u0000\u0854\u0858\u0001\u0000\u0000"+ + "\u0000\u0855\u0857\u0003\u00e4r\u0000\u0856\u0855\u0001\u0000\u0000\u0000"+ + "\u0857\u085a\u0001\u0000\u0000\u0000\u0858\u0856\u0001\u0000\u0000\u0000"+ + "\u0858\u0859\u0001\u0000\u0000\u0000\u0859\u085b\u0001\u0000\u0000\u0000"+ + "\u085a\u0858\u0001\u0000\u0000\u0000\u085b\u0866\u0005f\u0000\u0000\u085c"+ + "\u0860\u0005A\u0000\u0000\u085d\u085f\u0003\u00e4r\u0000\u085e\u085d\u0001"+ + "\u0000\u0000\u0000\u085f\u0862\u0001\u0000\u0000\u0000\u0860\u085e\u0001"+ + "\u0000\u0000\u0000\u0860\u0861\u0001\u0000\u0000\u0000\u0861\u0863\u0001"+ + "\u0000\u0000\u0000\u0862\u0860\u0001\u0000\u0000\u0000\u0863\u0865\u0005"+ + "f\u0000\u0000\u0864\u085c\u0001\u0000\u0000\u0000\u0865\u0868\u0001\u0000"+ + "\u0000\u0000\u0866\u0864\u0001\u0000\u0000\u0000\u0866\u0867\u0001\u0000"+ + "\u0000\u0000\u0867\u086a\u0001\u0000\u0000\u0000\u0868\u0866\u0001\u0000"+ + "\u0000\u0000\u0869\u086b\u0003\u0178\u00bc\u0000\u086a\u0869\u0001\u0000"+ + "\u0000\u0000\u086a\u086b\u0001\u0000\u0000\u0000\u086b\u086c\u0001\u0000"+ + "\u0000\u0000\u086c\u086e\u00059\u0000\u0000\u086d\u086f\u0003\u018c\u00c6"+ + "\u0000\u086e\u086d\u0001\u0000\u0000\u0000\u086e\u086f\u0001\u0000\u0000"+ + "\u0000\u086f\u0870\u0001\u0000\u0000\u0000\u0870\u0872\u0005:\u0000\u0000"+ + "\u0871\u0873\u0003`0\u0000\u0872\u0871\u0001\u0000\u0000\u0000\u0872\u0873"+ + "\u0001\u0000\u0000\u0000\u0873\u088d\u0001\u0000\u0000\u0000\u0874\u0875"+ + "\u00038\u001c\u0000\u0875\u0876\u0005A\u0000\u0000\u0876\u0878\u0005\u001f"+ + "\u0000\u0000\u0877\u0879\u0003(\u0014\u0000\u0878\u0877\u0001\u0000\u0000"+ + "\u0000\u0878\u0879\u0001\u0000\u0000\u0000\u0879\u087d\u0001\u0000\u0000"+ + "\u0000\u087a\u087c\u0003\u00e4r\u0000\u087b\u087a\u0001\u0000\u0000\u0000"+ + "\u087c\u087f\u0001\u0000\u0000\u0000\u087d\u087b\u0001\u0000\u0000\u0000"+ + "\u087d\u087e\u0001\u0000\u0000\u0000\u087e\u0880\u0001\u0000\u0000\u0000"+ + "\u087f\u087d\u0001\u0000\u0000\u0000\u0880\u0882\u0005f\u0000\u0000\u0881"+ + "\u0883\u0003\u0178\u00bc\u0000\u0882\u0881\u0001\u0000\u0000\u0000\u0882"+ + "\u0883\u0001\u0000\u0000\u0000\u0883\u0884\u0001\u0000\u0000\u0000\u0884"+ + "\u0886\u00059\u0000\u0000\u0885\u0887\u0003\u018c\u00c6\u0000\u0886\u0885"+ + "\u0001\u0000\u0000\u0000\u0886\u0887\u0001\u0000\u0000\u0000\u0887\u0888"+ + "\u0001\u0000\u0000\u0000\u0888\u088a\u0005:\u0000\u0000\u0889\u088b\u0003"+ + "`0\u0000\u088a\u0889\u0001\u0000\u0000\u0000\u088a\u088b\u0001\u0000\u0000"+ + "\u0000\u088b\u088d\u0001\u0000\u0000\u0000\u088c\u0851\u0001\u0000\u0000"+ + "\u0000\u088c\u0874\u0001\u0000\u0000\u0000\u088d\u0177\u0001\u0000\u0000"+ + "\u0000\u088e\u0892\u0003(\u0014\u0000\u088f\u0890\u0005D\u0000\u0000\u0890"+ + "\u0892\u0005C\u0000\u0000\u0891\u088e\u0001\u0000\u0000\u0000\u0891\u088f"+ + "\u0001\u0000\u0000\u0000\u0892\u0179\u0001\u0000\u0000\u0000\u0893\u0894"+ + "\u0003\u015e\u00af\u0000\u0894\u0895\u0005A\u0000\u0000\u0895\u0896\u0005"+ + "f\u0000\u0000\u0896\u08a1\u0001\u0000\u0000\u0000\u0897\u0898\u0005(\u0000"+ + "\u0000\u0898\u0899\u0005A\u0000\u0000\u0899\u08a1\u0005f\u0000\u0000\u089a"+ + "\u089b\u00034\u001a\u0000\u089b\u089c\u0005A\u0000\u0000\u089c\u089d\u0005"+ + "(\u0000\u0000\u089d\u089e\u0005A\u0000\u0000\u089e\u089f\u0005f\u0000"+ + "\u0000\u089f\u08a1\u0001\u0000\u0000\u0000\u08a0\u0893\u0001\u0000\u0000"+ + "\u0000\u08a0\u0897\u0001\u0000\u0000\u0000\u08a0\u089a\u0001\u0000\u0000"+ + "\u0000\u08a1\u017b\u0001\u0000\u0000\u0000\u08a2\u08a3\u0005A\u0000\u0000"+ + "\u08a3\u08a4\u0005f\u0000\u0000\u08a4\u017d\u0001\u0000\u0000\u0000\u08a5"+ + "\u08a6\u0005(\u0000\u0000\u08a6\u08a7\u0005A\u0000\u0000\u08a7\u08af\u0005"+ + "f\u0000\u0000\u08a8\u08a9\u00034\u001a\u0000\u08a9\u08aa\u0005A\u0000"+ + "\u0000\u08aa\u08ab\u0005(\u0000\u0000\u08ab\u08ac\u0005A\u0000\u0000\u08ac"+ + "\u08ad\u0005f\u0000\u0000\u08ad\u08af\u0001\u0000\u0000\u0000\u08ae\u08a5"+ + "\u0001\u0000\u0000\u0000\u08ae\u08a8\u0001\u0000\u0000\u0000\u08af\u017f"+ + "\u0001\u0000\u0000\u0000\u08b0\u08b1\u00038\u001c\u0000\u08b1\u08b2\u0005"+ + "=\u0000\u0000\u08b2\u08b3\u0003\u019c\u00ce\u0000\u08b3\u08b4\u0005>\u0000"+ + "\u0000\u08b4\u08bb\u0001\u0000\u0000\u0000\u08b5\u08b6\u0003\u0164\u00b2"+ + "\u0000\u08b6\u08b7\u0005=\u0000\u0000\u08b7\u08b8\u0003\u019c\u00ce\u0000"+ + "\u08b8\u08b9\u0005>\u0000\u0000\u08b9\u08bb\u0001\u0000\u0000\u0000\u08ba"+ + "\u08b0\u0001\u0000\u0000\u0000\u08ba\u08b5\u0001\u0000\u0000\u0000\u08bb"+ + "\u08c3\u0001\u0000\u0000\u0000\u08bc\u08bd\u0003\u0162\u00b1\u0000\u08bd"+ + "\u08be\u0005=\u0000\u0000\u08be\u08bf\u0003\u019c\u00ce\u0000\u08bf\u08c0"+ + "\u0005>\u0000\u0000\u08c0\u08c2\u0001\u0000\u0000\u0000\u08c1\u08bc\u0001"+ + "\u0000\u0000\u0000\u08c2\u08c5\u0001\u0000\u0000\u0000\u08c3\u08c1\u0001"+ + "\u0000\u0000\u0000\u08c3\u08c4\u0001\u0000\u0000\u0000\u08c4\u0181\u0001"+ + "\u0000\u0000\u0000\u08c5\u08c3\u0001\u0000\u0000\u0000\u08c6\u08c7\u0003"+ + "\u016a\u00b5\u0000\u08c7\u08c8\u0005=\u0000\u0000\u08c8\u08c9\u0003\u019c"+ + "\u00ce\u0000\u08c9\u08d1\u0005>\u0000\u0000\u08ca\u08cb\u0003\u0168\u00b4"+ + "\u0000\u08cb\u08cc\u0005=\u0000\u0000\u08cc\u08cd\u0003\u019c\u00ce\u0000"+ + "\u08cd\u08ce\u0005>\u0000\u0000\u08ce\u08d0\u0001\u0000\u0000\u0000\u08cf"+ + "\u08ca\u0001\u0000\u0000\u0000\u08d0\u08d3\u0001\u0000\u0000\u0000\u08d1"+ + "\u08cf\u0001\u0000\u0000\u0000\u08d1\u08d2\u0001\u0000\u0000\u0000\u08d2"+ + "\u0183\u0001\u0000\u0000\u0000\u08d3\u08d1\u0001\u0000\u0000\u0000\u08d4"+ + "\u08d5\u00038\u001c\u0000\u08d5\u08d6\u0005=\u0000\u0000\u08d6\u08d7\u0003"+ + "\u019c\u00ce\u0000\u08d7\u08d8\u0005>\u0000\u0000\u08d8\u08df\u0001\u0000"+ + "\u0000\u0000\u08d9\u08da\u0003\u0170\u00b8\u0000\u08da\u08db\u0005=\u0000"+ + "\u0000\u08db\u08dc\u0003\u019c\u00ce\u0000\u08dc\u08dd\u0005>\u0000\u0000"+ + "\u08dd\u08df\u0001\u0000\u0000\u0000\u08de\u08d4\u0001\u0000\u0000\u0000"+ + "\u08de\u08d9\u0001\u0000\u0000\u0000\u08df\u08e7\u0001\u0000\u0000\u0000"+ + "\u08e0\u08e1\u0003\u016e\u00b7\u0000\u08e1\u08e2\u0005=\u0000\u0000\u08e2"+ + "\u08e3\u0003\u019c\u00ce\u0000\u08e3\u08e4\u0005>\u0000\u0000\u08e4\u08e6"+ + "\u0001\u0000\u0000\u0000\u08e5\u08e0\u0001\u0000\u0000\u0000\u08e6\u08e9"+ + "\u0001\u0000\u0000\u0000\u08e7\u08e5\u0001\u0000\u0000\u0000\u08e7\u08e8"+ + "\u0001\u0000\u0000\u0000\u08e8\u0185\u0001\u0000\u0000\u0000\u08e9\u08e7"+ + "\u0001\u0000\u0000\u0000\u08ea\u08eb\u0003:\u001d\u0000\u08eb\u08ed\u0005"+ + "9\u0000\u0000\u08ec\u08ee\u0003\u018c\u00c6\u0000\u08ed\u08ec\u0001\u0000"+ + "\u0000\u0000\u08ed\u08ee\u0001\u0000\u0000\u0000\u08ee\u08ef\u0001\u0000"+ + "\u0000\u0000\u08ef\u08f0\u0005:\u0000\u0000\u08f0\u092f\u0001\u0000\u0000"+ + "\u0000\u08f1\u08f2\u00034\u001a\u0000\u08f2\u08f4\u0005A\u0000\u0000\u08f3"+ + "\u08f5\u0003(\u0014\u0000\u08f4\u08f3\u0001\u0000\u0000\u0000\u08f4\u08f5"+ + "\u0001\u0000\u0000\u0000\u08f5\u08f6\u0001\u0000\u0000\u0000\u08f6\u08f7"+ + "\u0005f\u0000\u0000\u08f7\u08f9\u00059\u0000\u0000\u08f8\u08fa\u0003\u018c"+ + "\u00c6\u0000\u08f9\u08f8\u0001\u0000\u0000\u0000\u08f9\u08fa\u0001\u0000"+ + "\u0000\u0000\u08fa\u08fb\u0001\u0000\u0000\u0000\u08fb\u08fc\u0005:\u0000"+ + "\u0000\u08fc\u092f\u0001\u0000\u0000\u0000\u08fd\u08fe\u00038\u001c\u0000"+ + "\u08fe\u0900\u0005A\u0000\u0000\u08ff\u0901\u0003(\u0014\u0000\u0900\u08ff"+ + "\u0001\u0000\u0000\u0000\u0900\u0901\u0001\u0000\u0000\u0000\u0901\u0902"+ + "\u0001\u0000\u0000\u0000\u0902\u0903\u0005f\u0000\u0000\u0903\u0905\u0005"+ + "9\u0000\u0000\u0904\u0906\u0003\u018c\u00c6\u0000\u0905\u0904\u0001\u0000"+ + "\u0000\u0000\u0905\u0906\u0001\u0000\u0000\u0000\u0906\u0907\u0001\u0000"+ + "\u0000\u0000\u0907\u0908\u0005:\u0000\u0000\u0908\u092f\u0001\u0000\u0000"+ + "\u0000\u0909\u090a\u0003\u015e\u00af\u0000\u090a\u090c\u0005A\u0000\u0000"+ + "\u090b\u090d\u0003(\u0014\u0000\u090c\u090b\u0001\u0000\u0000\u0000\u090c"+ + "\u090d\u0001\u0000\u0000\u0000\u090d\u090e\u0001\u0000\u0000\u0000\u090e"+ + "\u090f\u0005f\u0000\u0000\u090f\u0911\u00059\u0000\u0000\u0910\u0912\u0003"+ + "\u018c\u00c6\u0000\u0911\u0910\u0001\u0000\u0000\u0000\u0911\u0912\u0001"+ + "\u0000\u0000\u0000\u0912\u0913\u0001\u0000\u0000\u0000\u0913\u0914\u0005"+ + ":\u0000\u0000\u0914\u092f\u0001\u0000\u0000\u0000\u0915\u0916\u0005(\u0000"+ + "\u0000\u0916\u0918\u0005A\u0000\u0000\u0917\u0919\u0003(\u0014\u0000\u0918"+ + "\u0917\u0001\u0000\u0000\u0000\u0918\u0919\u0001\u0000\u0000\u0000\u0919"+ + "\u091a\u0001\u0000\u0000\u0000\u091a\u091b\u0005f\u0000\u0000\u091b\u091d"+ + "\u00059\u0000\u0000\u091c\u091e\u0003\u018c\u00c6\u0000\u091d\u091c\u0001"+ + "\u0000\u0000\u0000\u091d\u091e\u0001\u0000\u0000\u0000\u091e\u091f\u0001"+ + "\u0000\u0000\u0000\u091f\u092f\u0005:\u0000\u0000\u0920\u0921\u00034\u001a"+ + "\u0000\u0921\u0922\u0005A\u0000\u0000\u0922\u0923\u0005(\u0000\u0000\u0923"+ + "\u0925\u0005A\u0000\u0000\u0924\u0926\u0003(\u0014\u0000\u0925\u0924\u0001"+ + "\u0000\u0000\u0000\u0925\u0926\u0001\u0000\u0000\u0000\u0926\u0927\u0001"+ + "\u0000\u0000\u0000\u0927\u0928\u0005f\u0000\u0000\u0928\u092a\u00059\u0000"+ + "\u0000\u0929\u092b\u0003\u018c\u00c6\u0000\u092a\u0929\u0001\u0000\u0000"+ + "\u0000\u092a\u092b\u0001\u0000\u0000\u0000\u092b\u092c\u0001\u0000\u0000"+ + "\u0000\u092c\u092d\u0005:\u0000\u0000\u092d\u092f\u0001\u0000\u0000\u0000"+ + "\u092e\u08ea\u0001\u0000\u0000\u0000\u092e\u08f1\u0001\u0000\u0000\u0000"+ + "\u092e\u08fd\u0001\u0000\u0000\u0000\u092e\u0909\u0001\u0000\u0000\u0000"+ + "\u092e\u0915\u0001\u0000\u0000\u0000\u092e\u0920\u0001\u0000\u0000\u0000"+ + "\u092f\u0187\u0001\u0000\u0000\u0000\u0930\u0932\u0005A\u0000\u0000\u0931"+ + "\u0933\u0003(\u0014\u0000\u0932\u0931\u0001\u0000\u0000\u0000\u0932\u0933"+ + "\u0001\u0000\u0000\u0000\u0933\u0934\u0001\u0000\u0000\u0000\u0934\u0935"+ + "\u0005f\u0000\u0000\u0935\u0937\u00059\u0000\u0000\u0936\u0938\u0003\u018c"+ + "\u00c6\u0000\u0937\u0936\u0001\u0000\u0000\u0000\u0937\u0938\u0001\u0000"+ + "\u0000\u0000\u0938\u0939\u0001\u0000\u0000\u0000\u0939\u093a\u0005:\u0000"+ + "\u0000\u093a\u0189\u0001\u0000\u0000\u0000\u093b\u093c\u0003:\u001d\u0000"+ + "\u093c\u093e\u00059\u0000\u0000\u093d\u093f\u0003\u018c\u00c6\u0000\u093e"+ + "\u093d\u0001\u0000\u0000\u0000\u093e\u093f\u0001\u0000\u0000\u0000\u093f"+ + "\u0940\u0001\u0000\u0000\u0000\u0940\u0941\u0005:\u0000\u0000\u0941\u0974"+ + "\u0001\u0000\u0000\u0000\u0942\u0943\u00034\u001a\u0000\u0943\u0945\u0005"+ + "A\u0000\u0000\u0944\u0946\u0003(\u0014\u0000\u0945\u0944\u0001\u0000\u0000"+ + "\u0000\u0945\u0946\u0001\u0000\u0000\u0000\u0946\u0947\u0001\u0000\u0000"+ + "\u0000\u0947\u0948\u0005f\u0000\u0000\u0948\u094a\u00059\u0000\u0000\u0949"+ + "\u094b\u0003\u018c\u00c6\u0000\u094a\u0949\u0001\u0000\u0000\u0000\u094a"+ + "\u094b\u0001\u0000\u0000\u0000\u094b\u094c\u0001\u0000\u0000\u0000\u094c"+ + "\u094d\u0005:\u0000\u0000\u094d\u0974\u0001\u0000\u0000\u0000\u094e\u094f"+ + "\u00038\u001c\u0000\u094f\u0951\u0005A\u0000\u0000\u0950\u0952\u0003("+ + "\u0014\u0000\u0951\u0950\u0001\u0000\u0000\u0000\u0951\u0952\u0001\u0000"+ + "\u0000\u0000\u0952\u0953\u0001\u0000\u0000\u0000\u0953\u0954\u0005f\u0000"+ + "\u0000\u0954\u0956\u00059\u0000\u0000\u0955\u0957\u0003\u018c\u00c6\u0000"+ + "\u0956\u0955\u0001\u0000\u0000\u0000\u0956\u0957\u0001\u0000\u0000\u0000"+ + "\u0957\u0958\u0001\u0000\u0000\u0000\u0958\u0959\u0005:\u0000\u0000\u0959"+ + "\u0974\u0001\u0000\u0000\u0000\u095a\u095b\u0005(\u0000\u0000\u095b\u095d"+ + "\u0005A\u0000\u0000\u095c\u095e\u0003(\u0014\u0000\u095d\u095c\u0001\u0000"+ + "\u0000\u0000\u095d\u095e\u0001\u0000\u0000\u0000\u095e\u095f\u0001\u0000"+ + "\u0000\u0000\u095f\u0960\u0005f\u0000\u0000\u0960\u0962\u00059\u0000\u0000"+ + "\u0961\u0963\u0003\u018c\u00c6\u0000\u0962\u0961\u0001\u0000\u0000\u0000"+ + "\u0962\u0963\u0001\u0000\u0000\u0000\u0963\u0964\u0001\u0000\u0000\u0000"+ + "\u0964\u0974\u0005:\u0000\u0000\u0965\u0966\u00034\u001a\u0000\u0966\u0967"+ + "\u0005A\u0000\u0000\u0967\u0968\u0005(\u0000\u0000\u0968\u096a\u0005A"+ + "\u0000\u0000\u0969\u096b\u0003(\u0014\u0000\u096a\u0969\u0001\u0000\u0000"+ + "\u0000\u096a\u096b\u0001\u0000\u0000\u0000\u096b\u096c\u0001\u0000\u0000"+ + "\u0000\u096c\u096d\u0005f\u0000\u0000\u096d"; + private static final String _serializedATNSegment1 = + "\u096f\u00059\u0000\u0000\u096e\u0970\u0003\u018c\u00c6\u0000\u096f\u096e"+ + "\u0001\u0000\u0000\u0000\u096f\u0970\u0001\u0000\u0000\u0000\u0970\u0971"+ + "\u0001\u0000\u0000\u0000\u0971\u0972\u0005:\u0000\u0000\u0972\u0974\u0001"+ + "\u0000\u0000\u0000\u0973\u093b\u0001\u0000\u0000\u0000\u0973\u0942\u0001"+ + "\u0000\u0000\u0000\u0973\u094e\u0001\u0000\u0000\u0000\u0973\u095a\u0001"+ + "\u0000\u0000\u0000\u0973\u0965\u0001\u0000\u0000\u0000\u0974\u018b\u0001"+ + "\u0000\u0000\u0000\u0975\u097a\u0003\u019c\u00ce\u0000\u0976\u0977\u0005"+ + "@\u0000\u0000\u0977\u0979\u0003\u019c\u00ce\u0000\u0978\u0976\u0001\u0000"+ + "\u0000\u0000\u0979\u097c\u0001\u0000\u0000\u0000\u097a\u0978\u0001\u0000"+ + "\u0000\u0000\u097a\u097b\u0001\u0000\u0000\u0000\u097b\u018d\u0001\u0000"+ + "\u0000\u0000\u097c\u097a\u0001\u0000\u0000\u0000\u097d\u097e\u00038\u001c"+ + "\u0000\u097e\u0980\u0005Z\u0000\u0000\u097f\u0981\u0003(\u0014\u0000\u0980"+ + "\u097f\u0001\u0000\u0000\u0000\u0980\u0981\u0001\u0000\u0000\u0000\u0981"+ + "\u0982\u0001\u0000\u0000\u0000\u0982\u0983\u0005f\u0000\u0000\u0983\u09ad"+ + "\u0001\u0000\u0000\u0000\u0984\u0985\u0003\n\u0005\u0000\u0985\u0987\u0005"+ + "Z\u0000\u0000\u0986\u0988\u0003(\u0014\u0000\u0987\u0986\u0001\u0000\u0000"+ + "\u0000\u0987\u0988\u0001\u0000\u0000\u0000\u0988\u0989\u0001\u0000\u0000"+ + "\u0000\u0989\u098a\u0005f\u0000\u0000\u098a\u09ad\u0001\u0000\u0000\u0000"+ + "\u098b\u098c\u0003\u015e\u00af\u0000\u098c\u098e\u0005Z\u0000\u0000\u098d"+ + "\u098f\u0003(\u0014\u0000\u098e\u098d\u0001\u0000\u0000\u0000\u098e\u098f"+ + "\u0001\u0000\u0000\u0000\u098f\u0990\u0001\u0000\u0000\u0000\u0990\u0991"+ + "\u0005f\u0000\u0000\u0991\u09ad\u0001\u0000\u0000\u0000\u0992\u0993\u0005"+ + "(\u0000\u0000\u0993\u0995\u0005Z\u0000\u0000\u0994\u0996\u0003(\u0014"+ + "\u0000\u0995\u0994\u0001\u0000\u0000\u0000\u0995\u0996\u0001\u0000\u0000"+ + "\u0000\u0996\u0997\u0001\u0000\u0000\u0000\u0997\u09ad\u0005f\u0000\u0000"+ + "\u0998\u0999\u00034\u001a\u0000\u0999\u099a\u0005A\u0000\u0000\u099a\u099b"+ + "\u0005(\u0000\u0000\u099b\u099d\u0005Z\u0000\u0000\u099c\u099e\u0003("+ + "\u0014\u0000\u099d\u099c\u0001\u0000\u0000\u0000\u099d\u099e\u0001\u0000"+ + "\u0000\u0000\u099e\u099f\u0001\u0000\u0000\u0000\u099f\u09a0\u0005f\u0000"+ + "\u0000\u09a0\u09ad\u0001\u0000\u0000\u0000\u09a1\u09a2\u0003\u000e\u0007"+ + "\u0000\u09a2\u09a4\u0005Z\u0000\u0000\u09a3\u09a5\u0003(\u0014\u0000\u09a4"+ + "\u09a3\u0001\u0000\u0000\u0000\u09a4\u09a5\u0001\u0000\u0000\u0000\u09a5"+ + "\u09a6\u0001\u0000\u0000\u0000\u09a6\u09a7\u0005\u001f\u0000\u0000\u09a7"+ + "\u09ad\u0001\u0000\u0000\u0000\u09a8\u09a9\u0003\u001c\u000e\u0000\u09a9"+ + "\u09aa\u0005Z\u0000\u0000\u09aa\u09ab\u0005\u001f\u0000\u0000\u09ab\u09ad"+ + "\u0001\u0000\u0000\u0000\u09ac\u097d\u0001\u0000\u0000\u0000\u09ac\u0984"+ + "\u0001\u0000\u0000\u0000\u09ac\u098b\u0001\u0000\u0000\u0000\u09ac\u0992"+ + "\u0001\u0000\u0000\u0000\u09ac\u0998\u0001\u0000\u0000\u0000\u09ac\u09a1"+ + "\u0001\u0000\u0000\u0000\u09ac\u09a8\u0001\u0000\u0000\u0000\u09ad\u018f"+ + "\u0001\u0000\u0000\u0000\u09ae\u09b0\u0005Z\u0000\u0000\u09af\u09b1\u0003"+ + "(\u0014\u0000\u09b0\u09af\u0001\u0000\u0000\u0000\u09b0\u09b1\u0001\u0000"+ + "\u0000\u0000\u09b1\u09b2\u0001\u0000\u0000\u0000\u09b2\u09b3\u0005f\u0000"+ + "\u0000\u09b3\u0191\u0001\u0000\u0000\u0000\u09b4\u09b5\u00038\u001c\u0000"+ + "\u09b5\u09b7\u0005Z\u0000\u0000\u09b6\u09b8\u0003(\u0014\u0000\u09b7\u09b6"+ + "\u0001\u0000\u0000\u0000\u09b7\u09b8\u0001\u0000\u0000\u0000\u09b8\u09b9"+ + "\u0001\u0000\u0000\u0000\u09b9\u09ba\u0005f\u0000\u0000\u09ba\u09dd\u0001"+ + "\u0000\u0000\u0000\u09bb\u09bc\u0003\n\u0005\u0000\u09bc\u09be\u0005Z"+ + "\u0000\u0000\u09bd\u09bf\u0003(\u0014\u0000\u09be\u09bd\u0001\u0000\u0000"+ + "\u0000\u09be\u09bf\u0001\u0000\u0000\u0000\u09bf\u09c0\u0001\u0000\u0000"+ + "\u0000\u09c0\u09c1\u0005f\u0000\u0000\u09c1\u09dd\u0001\u0000\u0000\u0000"+ + "\u09c2\u09c3\u0005(\u0000\u0000\u09c3\u09c5\u0005Z\u0000\u0000\u09c4\u09c6"+ + "\u0003(\u0014\u0000\u09c5\u09c4\u0001\u0000\u0000\u0000\u09c5\u09c6\u0001"+ + "\u0000\u0000\u0000\u09c6\u09c7\u0001\u0000\u0000\u0000\u09c7\u09dd\u0005"+ + "f\u0000\u0000\u09c8\u09c9\u00034\u001a\u0000\u09c9\u09ca\u0005A\u0000"+ + "\u0000\u09ca\u09cb\u0005(\u0000\u0000\u09cb\u09cd\u0005Z\u0000\u0000\u09cc"+ + "\u09ce\u0003(\u0014\u0000\u09cd\u09cc\u0001\u0000\u0000\u0000\u09cd\u09ce"+ + "\u0001\u0000\u0000\u0000\u09ce\u09cf\u0001\u0000\u0000\u0000\u09cf\u09d0"+ + "\u0005f\u0000\u0000\u09d0\u09dd\u0001\u0000\u0000\u0000\u09d1\u09d2\u0003"+ + "\u000e\u0007\u0000\u09d2\u09d4\u0005Z\u0000\u0000\u09d3\u09d5\u0003(\u0014"+ + "\u0000\u09d4\u09d3\u0001\u0000\u0000\u0000\u09d4\u09d5\u0001\u0000\u0000"+ + "\u0000\u09d5\u09d6\u0001\u0000\u0000\u0000\u09d6\u09d7\u0005\u001f\u0000"+ + "\u0000\u09d7\u09dd\u0001\u0000\u0000\u0000\u09d8\u09d9\u0003\u001c\u000e"+ + "\u0000\u09d9\u09da\u0005Z\u0000\u0000\u09da\u09db\u0005\u001f\u0000\u0000"+ + "\u09db\u09dd\u0001\u0000\u0000\u0000\u09dc\u09b4\u0001\u0000\u0000\u0000"+ + "\u09dc\u09bb\u0001\u0000\u0000\u0000\u09dc\u09c2\u0001\u0000\u0000\u0000"+ + "\u09dc\u09c8\u0001\u0000\u0000\u0000\u09dc\u09d1\u0001\u0000\u0000\u0000"+ + "\u09dc\u09d8\u0001\u0000\u0000\u0000\u09dd\u0193\u0001\u0000\u0000\u0000"+ + "\u09de\u09df\u0005\u001f\u0000\u0000\u09df\u09e0\u0003\u0002\u0001\u0000"+ + "\u09e0\u09e2\u0003\u0196\u00cb\u0000\u09e1\u09e3\u0003\u001e\u000f\u0000"+ + "\u09e2\u09e1\u0001\u0000\u0000\u0000\u09e2\u09e3\u0001\u0000\u0000\u0000"+ + "\u09e3\u09f5\u0001\u0000\u0000\u0000\u09e4\u09e5\u0005\u001f\u0000\u0000"+ + "\u09e5\u09e6\u0003\f\u0006\u0000\u09e6\u09e8\u0003\u0196\u00cb\u0000\u09e7"+ + "\u09e9\u0003\u001e\u000f\u0000\u09e8\u09e7\u0001\u0000\u0000\u0000\u09e8"+ + "\u09e9\u0001\u0000\u0000\u0000\u09e9\u09f5\u0001\u0000\u0000\u0000\u09ea"+ + "\u09eb\u0005\u001f\u0000\u0000\u09eb\u09ec\u0003\u0002\u0001\u0000\u09ec"+ + "\u09ed\u0003\u001e\u000f\u0000\u09ed\u09ee\u0003\u00f6{\u0000\u09ee\u09f5"+ + "\u0001\u0000\u0000\u0000\u09ef\u09f0\u0005\u001f\u0000\u0000\u09f0\u09f1"+ + "\u0003\f\u0006\u0000\u09f1\u09f2\u0003\u001e\u000f\u0000\u09f2\u09f3\u0003"+ + "\u00f6{\u0000\u09f3\u09f5\u0001\u0000\u0000\u0000\u09f4\u09de\u0001\u0000"+ + "\u0000\u0000\u09f4\u09e4\u0001\u0000\u0000\u0000\u09f4\u09ea\u0001\u0000"+ + "\u0000\u0000\u09f4\u09ef\u0001\u0000\u0000\u0000\u09f5\u0195\u0001\u0000"+ + "\u0000\u0000\u09f6\u09fa\u0003\u0198\u00cc\u0000\u09f7\u09f9\u0003\u0198"+ + "\u00cc\u0000\u09f8\u09f7\u0001\u0000\u0000\u0000\u09f9\u09fc\u0001\u0000"+ + "\u0000\u0000\u09fa\u09f8\u0001\u0000\u0000\u0000\u09fa\u09fb\u0001\u0000"+ + "\u0000\u0000\u09fb\u0197\u0001\u0000\u0000\u0000\u09fc\u09fa\u0001\u0000"+ + "\u0000\u0000\u09fd\u09ff\u0003\u00e4r\u0000\u09fe\u09fd\u0001\u0000\u0000"+ + "\u0000\u09ff\u0a02\u0001\u0000\u0000\u0000\u0a00\u09fe\u0001\u0000\u0000"+ + "\u0000\u0a00\u0a01\u0001\u0000\u0000\u0000\u0a01\u0a03\u0001\u0000\u0000"+ + "\u0000\u0a02\u0a00\u0001\u0000\u0000\u0000\u0a03\u0a04\u0005=\u0000\u0000"+ + "\u0a04\u0a05\u0003\u019c\u00ce\u0000\u0a05\u0a06\u0005>\u0000\u0000\u0a06"+ + "\u0199\u0001\u0000\u0000\u0000\u0a07\u0a08\u0003\u019c\u00ce\u0000\u0a08"+ + "\u019b\u0001\u0000\u0000\u0000\u0a09\u0a0c\u0003\u019e\u00cf\u0000\u0a0a"+ + "\u0a0c\u0003\u01a6\u00d3\u0000\u0a0b\u0a09\u0001\u0000\u0000\u0000\u0a0b"+ + "\u0a0a\u0001\u0000\u0000\u0000\u0a0c\u019d\u0001\u0000\u0000\u0000\u0a0d"+ + "\u0a0e\u0003\u01a0\u00d0\u0000\u0a0e\u0a0f\u0005Y\u0000\u0000\u0a0f\u0a10"+ + "\u0003\u01a4\u00d2\u0000\u0a10\u019f\u0001\u0000\u0000\u0000\u0a11\u0a1c"+ + "\u0005f\u0000\u0000\u0a12\u0a14\u00059\u0000\u0000\u0a13\u0a15\u0003\u0094"+ + "J\u0000\u0a14\u0a13\u0001\u0000\u0000\u0000\u0a14\u0a15\u0001\u0000\u0000"+ + "\u0000\u0a15\u0a16\u0001\u0000\u0000\u0000\u0a16\u0a1c\u0005:\u0000\u0000"+ + "\u0a17\u0a18\u00059\u0000\u0000\u0a18\u0a19\u0003\u01a2\u00d1\u0000\u0a19"+ + "\u0a1a\u0005:\u0000\u0000\u0a1a\u0a1c\u0001\u0000\u0000\u0000\u0a1b\u0a11"+ + "\u0001\u0000\u0000\u0000\u0a1b\u0a12\u0001\u0000\u0000\u0000\u0a1b\u0a17"+ + "\u0001\u0000\u0000\u0000\u0a1c\u01a1\u0001\u0000\u0000\u0000\u0a1d\u0a22"+ + "\u0005f\u0000\u0000\u0a1e\u0a1f\u0005@\u0000\u0000\u0a1f\u0a21\u0005f"+ + "\u0000\u0000\u0a20\u0a1e\u0001\u0000\u0000\u0000\u0a21\u0a24\u0001\u0000"+ + "\u0000\u0000\u0a22\u0a20\u0001\u0000\u0000\u0000\u0a22\u0a23\u0001\u0000"+ + "\u0000\u0000\u0a23\u01a3\u0001\u0000\u0000\u0000\u0a24\u0a22\u0001\u0000"+ + "\u0000\u0000\u0a25\u0a28\u0003\u019c\u00ce\u0000\u0a26\u0a28\u0003\u00fa"+ + "}\u0000\u0a27\u0a25\u0001\u0000\u0000\u0000\u0a27\u0a26\u0001\u0000\u0000"+ + "\u0000\u0a28\u01a5\u0001\u0000\u0000\u0000\u0a29\u0a2c\u0003\u01ae\u00d7"+ + "\u0000\u0a2a\u0a2c\u0003\u01a8\u00d4\u0000\u0a2b\u0a29\u0001\u0000\u0000"+ + "\u0000\u0a2b\u0a2a\u0001\u0000\u0000\u0000\u0a2c\u01a7\u0001\u0000\u0000"+ + "\u0000\u0a2d\u0a2e\u0003\u01aa\u00d5\u0000\u0a2e\u0a2f\u0003\u01ac\u00d6"+ + "\u0000\u0a2f\u0a30\u0003\u019c\u00ce\u0000\u0a30\u01a9\u0001\u0000\u0000"+ + "\u0000\u0a31\u0a35\u00038\u001c\u0000\u0a32\u0a35\u0003\u017a\u00bd\u0000"+ + "\u0a33\u0a35\u0003\u0180\u00c0\u0000\u0a34\u0a31\u0001\u0000\u0000\u0000"+ + "\u0a34\u0a32\u0001\u0000\u0000\u0000\u0a34\u0a33\u0001\u0000\u0000\u0000"+ + "\u0a35\u01ab\u0001\u0000\u0000\u0000\u0a36\u0a37\u0007\u0003\u0000\u0000"+ + "\u0a37\u01ad\u0001\u0000\u0000\u0000\u0a38\u0a40\u0003\u01b0\u00d8\u0000"+ + "\u0a39\u0a3a\u0003\u01b0\u00d8\u0000\u0a3a\u0a3b\u0005G\u0000\u0000\u0a3b"+ + "\u0a3c\u0003\u019c\u00ce\u0000\u0a3c\u0a3d\u0005H\u0000\u0000\u0a3d\u0a3e"+ + "\u0003\u01ae\u00d7\u0000\u0a3e\u0a40\u0001\u0000\u0000\u0000\u0a3f\u0a38"+ + "\u0001\u0000\u0000\u0000\u0a3f\u0a39\u0001\u0000\u0000\u0000\u0a40\u01af"+ + "\u0001\u0000\u0000\u0000\u0a41\u0a42\u0006\u00d8\uffff\uffff\u0000\u0a42"+ + "\u0a43\u0003\u01b2\u00d9\u0000\u0a43\u0a49\u0001\u0000\u0000\u0000\u0a44"+ + "\u0a45\n\u0001\u0000\u0000\u0a45\u0a46\u0005N\u0000\u0000\u0a46\u0a48"+ + "\u0003\u01b2\u00d9\u0000\u0a47\u0a44\u0001\u0000\u0000\u0000\u0a48\u0a4b"+ + "\u0001\u0000\u0000\u0000\u0a49\u0a47\u0001\u0000\u0000\u0000\u0a49\u0a4a"+ + "\u0001\u0000\u0000\u0000\u0a4a\u01b1\u0001\u0000\u0000\u0000\u0a4b\u0a49"+ + "\u0001\u0000\u0000\u0000\u0a4c\u0a4d\u0006\u00d9\uffff\uffff\u0000\u0a4d"+ + "\u0a4e\u0003\u01b4\u00da\u0000\u0a4e\u0a54\u0001\u0000\u0000\u0000\u0a4f"+ + "\u0a50\n\u0001\u0000\u0000\u0a50\u0a51\u0005M\u0000\u0000\u0a51\u0a53"+ + "\u0003\u01b4\u00da\u0000\u0a52\u0a4f\u0001\u0000\u0000\u0000\u0a53\u0a56"+ + "\u0001\u0000\u0000\u0000\u0a54\u0a52\u0001\u0000\u0000\u0000\u0a54\u0a55"+ + "\u0001\u0000\u0000\u0000\u0a55\u01b3\u0001\u0000\u0000\u0000\u0a56\u0a54"+ + "\u0001\u0000\u0000\u0000\u0a57\u0a58\u0006\u00da\uffff\uffff\u0000\u0a58"+ + "\u0a59\u0003\u01b6\u00db\u0000\u0a59\u0a5f\u0001\u0000\u0000\u0000\u0a5a"+ + "\u0a5b\n\u0001\u0000\u0000\u0a5b\u0a5c\u0005V\u0000\u0000\u0a5c\u0a5e"+ + "\u0003\u01b6\u00db\u0000\u0a5d\u0a5a\u0001\u0000\u0000\u0000\u0a5e\u0a61"+ + "\u0001\u0000\u0000\u0000\u0a5f\u0a5d\u0001\u0000\u0000\u0000\u0a5f\u0a60"+ + "\u0001\u0000\u0000\u0000\u0a60\u01b5\u0001\u0000\u0000\u0000\u0a61\u0a5f"+ + "\u0001\u0000\u0000\u0000\u0a62\u0a63\u0006\u00db\uffff\uffff\u0000\u0a63"+ + "\u0a64\u0003\u01b8\u00dc\u0000\u0a64\u0a6a\u0001\u0000\u0000\u0000\u0a65"+ + "\u0a66\n\u0001\u0000\u0000\u0a66\u0a67\u0005W\u0000\u0000\u0a67\u0a69"+ + "\u0003\u01b8\u00dc\u0000\u0a68\u0a65\u0001\u0000\u0000\u0000\u0a69\u0a6c"+ + "\u0001\u0000\u0000\u0000\u0a6a\u0a68\u0001\u0000\u0000\u0000\u0a6a\u0a6b"+ + "\u0001\u0000\u0000\u0000\u0a6b\u01b7\u0001\u0000\u0000\u0000\u0a6c\u0a6a"+ + "\u0001\u0000\u0000\u0000\u0a6d\u0a6e\u0006\u00dc\uffff\uffff\u0000\u0a6e"+ + "\u0a6f\u0003\u01ba\u00dd\u0000\u0a6f\u0a75\u0001\u0000\u0000\u0000\u0a70"+ + "\u0a71\n\u0001\u0000\u0000\u0a71\u0a72\u0005U\u0000\u0000\u0a72\u0a74"+ + "\u0003\u01ba\u00dd\u0000\u0a73\u0a70\u0001\u0000\u0000\u0000\u0a74\u0a77"+ + "\u0001\u0000\u0000\u0000\u0a75\u0a73\u0001\u0000\u0000\u0000\u0a75\u0a76"+ + "\u0001\u0000\u0000\u0000\u0a76\u01b9\u0001\u0000\u0000\u0000\u0a77\u0a75"+ + "\u0001\u0000\u0000\u0000\u0a78\u0a79\u0006\u00dd\uffff\uffff\u0000\u0a79"+ + "\u0a7a\u0003\u01bc\u00de\u0000\u0a7a\u0a83\u0001\u0000\u0000\u0000\u0a7b"+ + "\u0a7c\n\u0002\u0000\u0000\u0a7c\u0a7d\u0005I\u0000\u0000\u0a7d\u0a82"+ + "\u0003\u01bc\u00de\u0000\u0a7e\u0a7f\n\u0001\u0000\u0000\u0a7f\u0a80\u0005"+ + "L\u0000\u0000\u0a80\u0a82\u0003\u01bc\u00de\u0000\u0a81\u0a7b\u0001\u0000"+ + "\u0000\u0000\u0a81\u0a7e\u0001\u0000\u0000\u0000\u0a82\u0a85\u0001\u0000"+ + "\u0000\u0000\u0a83\u0a81\u0001\u0000\u0000\u0000\u0a83\u0a84\u0001\u0000"+ + "\u0000\u0000\u0a84\u01bb\u0001\u0000\u0000\u0000\u0a85\u0a83\u0001\u0000"+ + "\u0000\u0000\u0a86\u0a87\u0006\u00de\uffff\uffff\u0000\u0a87\u0a88\u0003"+ + "\u01be\u00df\u0000\u0a88\u0a9a\u0001\u0000\u0000\u0000\u0a89\u0a8a\n\u0005"+ + "\u0000\u0000\u0a8a\u0a8b\u0005D\u0000\u0000\u0a8b\u0a99\u0003\u01be\u00df"+ + "\u0000\u0a8c\u0a8d\n\u0004\u0000\u0000\u0a8d\u0a8e\u0005C\u0000\u0000"+ + "\u0a8e\u0a99\u0003\u01be\u00df\u0000\u0a8f\u0a90\n\u0003\u0000\u0000\u0a90"+ + "\u0a91\u0005J\u0000\u0000\u0a91\u0a99\u0003\u01be\u00df\u0000\u0a92\u0a93"+ + "\n\u0002\u0000\u0000\u0a93\u0a94\u0005K\u0000\u0000\u0a94\u0a99\u0003"+ + "\u01be\u00df\u0000\u0a95\u0a96\n\u0001\u0000\u0000\u0a96\u0a97\u0005\u001a"+ + "\u0000\u0000\u0a97\u0a99\u0003\n\u0005\u0000\u0a98\u0a89\u0001\u0000\u0000"+ + "\u0000\u0a98\u0a8c\u0001\u0000\u0000\u0000\u0a98\u0a8f\u0001\u0000\u0000"+ + "\u0000\u0a98\u0a92\u0001\u0000\u0000\u0000\u0a98\u0a95\u0001\u0000\u0000"+ + "\u0000\u0a99\u0a9c\u0001\u0000\u0000\u0000\u0a9a\u0a98\u0001\u0000\u0000"+ + "\u0000\u0a9a\u0a9b\u0001\u0000\u0000\u0000\u0a9b\u01bd\u0001\u0000\u0000"+ + "\u0000\u0a9c\u0a9a\u0001\u0000\u0000\u0000\u0a9d\u0a9e\u0006\u00df\uffff"+ + "\uffff\u0000\u0a9e\u0a9f\u0003\u01c0\u00e0\u0000\u0a9f\u0aaf\u0001\u0000"+ + "\u0000\u0000\u0aa0\u0aa1\n\u0003\u0000\u0000\u0aa1\u0aa2\u0005D\u0000"+ + "\u0000\u0aa2\u0aa3\u0005D\u0000\u0000\u0aa3\u0aae\u0003\u01c0\u00e0\u0000"+ + "\u0aa4\u0aa5\n\u0002\u0000\u0000\u0aa5\u0aa6\u0005C\u0000\u0000\u0aa6"+ + "\u0aa7\u0005C\u0000\u0000\u0aa7\u0aae\u0003\u01c0\u00e0\u0000\u0aa8\u0aa9"+ + "\n\u0001\u0000\u0000\u0aa9\u0aaa\u0005C\u0000\u0000\u0aaa\u0aab\u0005"+ + "C\u0000\u0000\u0aab\u0aac\u0005C\u0000\u0000\u0aac\u0aae\u0003\u01c0\u00e0"+ + "\u0000\u0aad\u0aa0\u0001\u0000\u0000\u0000\u0aad\u0aa4\u0001\u0000\u0000"+ + "\u0000\u0aad\u0aa8\u0001\u0000\u0000\u0000\u0aae\u0ab1\u0001\u0000\u0000"+ + "\u0000\u0aaf\u0aad\u0001\u0000\u0000\u0000\u0aaf\u0ab0\u0001\u0000\u0000"+ + "\u0000\u0ab0\u01bf\u0001\u0000\u0000\u0000\u0ab1\u0aaf\u0001\u0000\u0000"+ + "\u0000\u0ab2\u0ab3\u0006\u00e0\uffff\uffff\u0000\u0ab3\u0ab4\u0003\u01c2"+ + "\u00e1\u0000\u0ab4\u0abd\u0001\u0000\u0000\u0000\u0ab5\u0ab6\n\u0002\u0000"+ + "\u0000\u0ab6\u0ab7\u0005Q\u0000\u0000\u0ab7\u0abc\u0003\u01c2\u00e1\u0000"+ + "\u0ab8\u0ab9\n\u0001\u0000\u0000\u0ab9\u0aba\u0005R\u0000\u0000\u0aba"+ + "\u0abc\u0003\u01c2\u00e1\u0000\u0abb\u0ab5\u0001\u0000\u0000\u0000\u0abb"+ + "\u0ab8\u0001\u0000\u0000\u0000\u0abc\u0abf\u0001\u0000\u0000\u0000\u0abd"+ + "\u0abb\u0001\u0000\u0000\u0000\u0abd\u0abe\u0001\u0000\u0000\u0000\u0abe"+ + "\u01c1\u0001\u0000\u0000\u0000\u0abf\u0abd\u0001\u0000\u0000\u0000\u0ac0"+ + "\u0ac1\u0006\u00e1\uffff\uffff\u0000\u0ac1\u0ac2\u0003\u01c4\u00e2\u0000"+ + "\u0ac2\u0ace\u0001\u0000\u0000\u0000\u0ac3\u0ac4\n\u0003\u0000\u0000\u0ac4"+ + "\u0ac5\u0005S\u0000\u0000\u0ac5\u0acd\u0003\u01c4\u00e2\u0000\u0ac6\u0ac7"+ + "\n\u0002\u0000\u0000\u0ac7\u0ac8\u0005T\u0000\u0000\u0ac8\u0acd\u0003"+ + "\u01c4\u00e2\u0000\u0ac9\u0aca\n\u0001\u0000\u0000\u0aca\u0acb\u0005X"+ + "\u0000\u0000\u0acb\u0acd\u0003\u01c4\u00e2\u0000\u0acc\u0ac3\u0001\u0000"+ + "\u0000\u0000\u0acc\u0ac6\u0001\u0000\u0000\u0000\u0acc\u0ac9\u0001\u0000"+ + "\u0000\u0000\u0acd\u0ad0\u0001\u0000\u0000\u0000\u0ace\u0acc\u0001\u0000"+ + "\u0000\u0000\u0ace\u0acf\u0001\u0000\u0000\u0000\u0acf\u01c3\u0001\u0000"+ + "\u0000\u0000\u0ad0\u0ace\u0001\u0000\u0000\u0000\u0ad1\u0ad9\u0003\u01c6"+ + "\u00e3\u0000\u0ad2\u0ad9\u0003\u01c8\u00e4\u0000\u0ad3\u0ad4\u0005Q\u0000"+ + "\u0000\u0ad4\u0ad9\u0003\u01c4\u00e2\u0000\u0ad5\u0ad6\u0005R\u0000\u0000"+ + "\u0ad6\u0ad9\u0003\u01c4\u00e2\u0000\u0ad7\u0ad9\u0003\u01ca\u00e5\u0000"+ + "\u0ad8\u0ad1\u0001\u0000\u0000\u0000\u0ad8\u0ad2\u0001\u0000\u0000\u0000"+ + "\u0ad8\u0ad3\u0001\u0000\u0000\u0000\u0ad8\u0ad5\u0001\u0000\u0000\u0000"+ + "\u0ad8\u0ad7\u0001\u0000\u0000\u0000\u0ad9\u01c5\u0001\u0000\u0000\u0000"+ + "\u0ada\u0adb\u0005O\u0000\u0000\u0adb\u0adc\u0003\u01c4\u00e2\u0000\u0adc"+ + "\u01c7\u0001\u0000\u0000\u0000\u0add\u0ade\u0005P\u0000\u0000\u0ade\u0adf"+ + "\u0003\u01c4\u00e2\u0000\u0adf\u01c9\u0001\u0000\u0000\u0000\u0ae0\u0ae7"+ + "\u0003\u01cc\u00e6\u0000\u0ae1\u0ae2\u0005F\u0000\u0000\u0ae2\u0ae7\u0003"+ + "\u01c4\u00e2\u0000\u0ae3\u0ae4\u0005E\u0000\u0000\u0ae4\u0ae7\u0003\u01c4"+ + "\u00e2\u0000\u0ae5\u0ae7\u0003\u01d6\u00eb\u0000\u0ae6\u0ae0\u0001\u0000"+ + "\u0000\u0000\u0ae6\u0ae1\u0001\u0000\u0000\u0000\u0ae6\u0ae3\u0001\u0000"+ + "\u0000\u0000\u0ae6\u0ae5\u0001\u0000\u0000\u0000\u0ae7\u01cb\u0001\u0000"+ + "\u0000\u0000\u0ae8\u0aeb\u0003\u015e\u00af\u0000\u0ae9\u0aeb\u00038\u001c"+ + "\u0000\u0aea\u0ae8\u0001\u0000\u0000\u0000\u0aea\u0ae9\u0001\u0000\u0000"+ + "\u0000\u0aeb\u0af0\u0001\u0000\u0000\u0000\u0aec\u0aef\u0003\u01d0\u00e8"+ + "\u0000\u0aed\u0aef\u0003\u01d4\u00ea\u0000\u0aee\u0aec\u0001\u0000\u0000"+ + "\u0000\u0aee\u0aed\u0001\u0000\u0000\u0000\u0aef\u0af2\u0001\u0000\u0000"+ + "\u0000\u0af0\u0aee\u0001\u0000\u0000\u0000\u0af0\u0af1\u0001\u0000\u0000"+ + "\u0000\u0af1\u01cd\u0001\u0000\u0000\u0000\u0af2\u0af0\u0001\u0000\u0000"+ + "\u0000\u0af3\u0af4\u0003\u01cc\u00e6\u0000\u0af4\u0af5\u0005O\u0000\u0000"+ + "\u0af5\u01cf\u0001\u0000\u0000\u0000\u0af6\u0af7\u0005O\u0000\u0000\u0af7"+ + "\u01d1\u0001\u0000\u0000\u0000\u0af8\u0af9\u0003\u01cc\u00e6\u0000\u0af9"+ + "\u0afa\u0005P\u0000\u0000\u0afa\u01d3\u0001\u0000\u0000\u0000\u0afb\u0afc"+ + "\u0005P\u0000\u0000\u0afc\u01d5\u0001\u0000\u0000\u0000\u0afd\u0afe\u0005"+ + "9\u0000\u0000\u0afe\u0aff\u0003\u0002\u0001\u0000\u0aff\u0b00\u0005:\u0000"+ + "\u0000\u0b00\u0b01\u0003\u01c4\u00e2\u0000\u0b01\u0b19\u0001\u0000\u0000"+ + "\u0000\u0b02\u0b03\u00059\u0000\u0000\u0b03\u0b07\u0003\n\u0005\u0000"+ + "\u0b04\u0b06\u0003&\u0013\u0000\u0b05\u0b04\u0001\u0000\u0000\u0000\u0b06"+ + "\u0b09\u0001\u0000\u0000\u0000\u0b07\u0b05\u0001\u0000\u0000\u0000\u0b07"+ + "\u0b08\u0001\u0000\u0000\u0000\u0b08\u0b0a\u0001\u0000\u0000\u0000\u0b09"+ + "\u0b07\u0001\u0000\u0000\u0000\u0b0a\u0b0b\u0005:\u0000\u0000\u0b0b\u0b0c"+ + "\u0003\u01ca\u00e5\u0000\u0b0c\u0b19\u0001\u0000\u0000\u0000\u0b0d\u0b0e"+ + "\u00059\u0000\u0000\u0b0e\u0b12\u0003\n\u0005\u0000\u0b0f\u0b11\u0003"+ + "&\u0013\u0000\u0b10\u0b0f\u0001\u0000\u0000\u0000\u0b11\u0b14\u0001\u0000"+ + "\u0000\u0000\u0b12\u0b10\u0001\u0000\u0000\u0000\u0b12\u0b13\u0001\u0000"+ + "\u0000\u0000\u0b13\u0b15\u0001\u0000\u0000\u0000\u0b14\u0b12\u0001\u0000"+ + "\u0000\u0000\u0b15\u0b16\u0005:\u0000\u0000\u0b16\u0b17\u0003\u019e\u00cf"+ + "\u0000\u0b17\u0b19\u0001\u0000\u0000\u0000\u0b18\u0afd\u0001\u0000\u0000"+ + "\u0000\u0b18\u0b02\u0001\u0000\u0000\u0000\u0b18\u0b0d\u0001\u0000\u0000"+ + "\u0000\u0b19\u01d7\u0001\u0000\u0000\u0000\u0142\u01dd\u01e4\u01e8\u01ec"+ + "\u01f5\u01f9\u01fd\u01ff\u0205\u020a\u0211\u0216\u0218\u021e\u0223\u0228"+ + "\u022d\u0238\u0246\u024b\u0253\u025a\u0260\u0265\u0270\u0273\u0281\u0286"+ + "\u028b\u0290\u0296\u02a0\u02a8\u02b2\u02ba\u02c6\u02ca\u02cf\u02d5\u02dd"+ + "\u02ea\u0307\u030b\u0310\u0316\u0319\u031c\u0328\u0333\u0341\u0348\u0351"+ + "\u0358\u035d\u036c\u0373\u0379\u037d\u0381\u0385\u0389\u038e\u0392\u0396"+ + "\u0398\u039d\u03a4\u03a9\u03ab\u03b1\u03b6\u03ba\u03cd\u03d2\u03e2\u03e7"+ + "\u03ed\u03f3\u03f5\u03f9\u03fe\u0402\u040a\u0411\u0419\u041c\u0421\u0429"+ + "\u042e\u0435\u043c\u0441\u0447\u0453\u0458\u045c\u0466\u046b\u0473\u0476"+ + "\u047b\u0483\u0486\u048b\u0490\u0495\u049a\u04a1\u04a6\u04ae\u04b3\u04b8"+ + "\u04bd\u04c3\u04c9\u04cc\u04cf\u04d8\u04de\u04e4\u04e7\u04ea\u04f2\u04f7"+ + "\u04fc\u0502\u0505\u0510\u0519\u0523\u0528\u0533\u0538\u0544\u0549\u0555"+ + "\u055f\u0564\u056c\u056f\u0576\u057e\u0584\u058d\u0597\u059b\u059e\u05a7"+ + "\u05b5\u05b8\u05c1\u05c6\u05cd\u05d2\u05da\u05e6\u05ed\u05fb\u0611\u0633"+ + "\u063f\u0645\u0651\u065e\u0678\u067c\u0681\u0685\u0689\u0691\u0695\u0699"+ + "\u06a0\u06a9\u06b1\u06c0\u06cc\u06d2\u06d8\u06ed\u06f2\u06f8\u0704\u070f"+ + "\u0719\u071c\u0721\u072a\u0730\u073a\u073f\u0748\u075f\u0769\u077f\u0786"+ + "\u078e\u0796\u07a1\u07b8\u07c2\u07cd\u07e3\u07e7\u07ec\u07f4\u07fa\u07fe"+ + "\u0802\u0806\u080c\u0811\u0816\u081a\u081e\u0824\u0829\u082e\u0832\u0836"+ + "\u0838\u083d\u0842\u0847\u084b\u084f\u0853\u0858\u0860\u0866\u086a\u086e"+ + "\u0872\u0878\u087d\u0882\u0886\u088a\u088c\u0891\u08a0\u08ae\u08ba\u08c3"+ + "\u08d1\u08de\u08e7\u08ed\u08f4\u08f9\u0900\u0905\u090c\u0911\u0918\u091d"+ + "\u0925\u092a\u092e\u0932\u0937\u093e\u0945\u094a\u0951\u0956\u095d\u0962"+ + "\u096a\u096f\u0973\u097a\u0980\u0987\u098e\u0995\u099d\u09a4\u09ac\u09b0"+ + "\u09b7\u09be\u09c5\u09cd\u09d4\u09dc\u09e2\u09e8\u09f4\u09fa\u0a00\u0a0b"+ + "\u0a14\u0a1b\u0a22\u0a27\u0a2b\u0a34\u0a3f\u0a49\u0a54\u0a5f\u0a6a\u0a75"+ + "\u0a81\u0a83\u0a98\u0a9a\u0aad\u0aaf\u0abb\u0abd\u0acc\u0ace\u0ad8\u0ae6"+ + "\u0aea\u0aee\u0af0\u0b07\u0b12\u0b18"; + 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/Assignment-2/Java-8/Java8Parser.tokens b/Assignment-2/Java-8/Java8Parser.tokens new file mode 100644 index 0000000..52ef1ee --- /dev/null +++ b/Assignment-2/Java-8/Java8Parser.tokens @@ -0,0 +1,205 @@ +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +IntegerLiteral=51 +FloatingPointLiteral=52 +BooleanLiteral=53 +CharacterLiteral=54 +StringLiteral=55 +NullLiteral=56 +LPAREN=57 +RPAREN=58 +LBRACE=59 +RBRACE=60 +LBRACK=61 +RBRACK=62 +SEMI=63 +COMMA=64 +DOT=65 +ASSIGN=66 +GT=67 +LT=68 +BANG=69 +TILDE=70 +QUESTION=71 +COLON=72 +EQUAL=73 +LE=74 +GE=75 +NOTEQUAL=76 +AND=77 +OR=78 +INC=79 +DEC=80 +ADD=81 +SUB=82 +MUL=83 +DIV=84 +BITAND=85 +BITOR=86 +CARET=87 +MOD=88 +ARROW=89 +COLONCOLON=90 +ADD_ASSIGN=91 +SUB_ASSIGN=92 +MUL_ASSIGN=93 +DIV_ASSIGN=94 +AND_ASSIGN=95 +OR_ASSIGN=96 +XOR_ASSIGN=97 +MOD_ASSIGN=98 +LSHIFT_ASSIGN=99 +RSHIFT_ASSIGN=100 +URSHIFT_ASSIGN=101 +Identifier=102 +AT=103 +ELLIPSIS=104 +WS=105 +COMMENT=106 +LINE_COMMENT=107 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=56 +'('=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 +'@'=103 +'...'=104 diff --git a/Assignment-2/Java-8/Java8ParserBaseListener.class b/Assignment-2/Java-8/Java8ParserBaseListener.class new file mode 100644 index 0000000000000000000000000000000000000000..3deddf9be3b25ff807627263b9b2152b47f7dcc4 GIT binary patch literal 61952 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8ParserBaseListener.java b/Assignment-2/Java-8/Java8ParserBaseListener.java new file mode 100644 index 0000000..16db37b --- /dev/null +++ b/Assignment-2/Java-8/Java8ParserBaseListener.java @@ -0,0 +1,2871 @@ +// Generated from Java-8/Java8Parser.g4 by ANTLR 4.13.2 + +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 Java8ParserListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class Java8ParserBaseListener implements Java8ParserListener { + /** + * {@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 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 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.EmptyStatement_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyStatement_(Java8Parser.EmptyStatement_Context 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/Assignment-2/Java-8/Java8ParserListener.class b/Assignment-2/Java-8/Java8ParserListener.class new file mode 100644 index 0000000000000000000000000000000000000000..0a62eedba6e0ea3e51866125867a3893e7a6a9a5 GIT binary patch literal 46886 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 literal 0 HcmV?d00001 diff --git a/Assignment-2/Java-8/Java8ParserListener.java b/Assignment-2/Java-8/Java8ParserListener.java new file mode 100644 index 0000000..7f0dc6b --- /dev/null +++ b/Assignment-2/Java-8/Java8ParserListener.java @@ -0,0 +1,2369 @@ +// Generated from Java-8/Java8Parser.g4 by ANTLR 4.13.2 +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link Java8Parser}. + */ +public interface Java8ParserListener 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#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#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.EmptyStatement_Context ctx); + /** + * Exit a parse tree produced by {@link Java8Parser#emptyStatement_}. + * @param ctx the parse tree + */ + void exitEmptyStatement_(Java8Parser.EmptyStatement_Context 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/Assignment-2/antlr-4.13.2-complete.jar b/Assignment-2/antlr-4.13.2-complete.jar new file mode 100644 index 0000000000000000000000000000000000000000..75bfcc397636c512d9bc6c7409f33f2667b8c4a7 GIT binary patch literal 2140045 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
@&P1R$0Dd*p`rOX6W7MPkc?wcvv}~?>>14 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≤3+9E0!^=o_DMgMiy29m)YPFfd7tPbkg)eH> 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

ccv3S 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